cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

si470x.rst (5266B)


      1.. SPDX-License-Identifier: GPL-2.0
      2
      3.. include:: <isonum.txt>
      4
      5The Silicon Labs Si470x FM Radio Receivers driver
      6=================================================
      7
      8Copyright |copy| 2009 Tobias Lorenz <tobias.lorenz@gmx.net>
      9
     10
     11Information from Silicon Labs
     12-----------------------------
     13
     14Silicon Laboratories is the manufacturer of the radio ICs, that nowadays are the
     15most often used radio receivers in cell phones. Usually they are connected with
     16I2C. 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 source
     19code. The software also contains an automatic firmware upgrade to the most
     20current version. Information on these can be downloaded here:
     21http://www.silabs.com/usbradio
     22
     23
     24Supported ICs
     25-------------
     26
     27The following ICs have a very similar register set, so that they are or will be
     28supported somewhen by the driver:
     29
     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
     41
     42More information on these can be downloaded here:
     43http://www.silabs.com/products/mcu/Pages/USBFMRadioRD.aspx
     44
     45
     46Supported USB devices
     47---------------------
     48
     49Currently the following USB radios (vendor:product) with the Silicon Labs si470x
     50chips are known to work:
     51
     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)
     56
     57
     58Software
     59--------
     60
     61Testing is usually done with most application under Debian/testing:
     62
     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
     70
     71For example, you can use:
     72
     73.. code-block:: none
     74
     75	v4l2-ctl -d /dev/radio0 --set-ctrl=volume=10,mute=0 --set-freq=95.21 --all
     76
     77There is also a library libv4l, which can be used. It's going to have a function
     78for frequency seeking, either by using hardware functionality as in radio-si470x
     79or by implementing a function as we currently have in every of the mentioned
     80programs. 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 Listing
     89-------------
     90
     91USB Audio is provided by the ALSA snd_usb_audio module. It is recommended to
     92also select SND_USB_AUDIO, as this is required to get sound from the radio. For
     93listing you have to redirect the sound, for example using one of the following
     94commands. 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:: none
     99
    100	cat /dev/dsp1 > /dev/dsp
    101
    102If you use sox + OSS try:
    103
    104.. code-block:: none
    105
    106	sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp
    107
    108or using sox + alsa:
    109
    110.. code-block:: none
    111
    112	sox --endian little -c 2 -S -r 96000 -t alsa hw:1 -t alsa -r 96000 hw:0
    113
    114If you use arts try:
    115
    116.. code-block:: none
    117
    118	arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B -
    119
    120If you use mplayer try:
    121
    122.. code-block:: none
    123
    124	mplayer -radio adevice=hw=1.0:arate=96000 \
    125		-rawaudio rate=96000 \
    126		radio://<frequency>/capture
    127
    128Module Parameters
    129-----------------
    130
    131After loading the module, you still have access to some of them in the sysfs
    132mount 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
    134video controls. The others are runtime changeable.
    135
    136
    137Errors
    138------
    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 Issues
    148-----------
    149
    150V4L minor device allocation and parameter setting is not perfect. A solution is
    151currently under discussion.
    152
    153There is an USB interface for downloading/uploading new firmware images. Support
    154for it can be implemented using the request_firmware interface.
    155
    156There is a RDS interrupt mode. The driver is already using the same interface
    157for 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 control
    160programmed in the firmware. This can be made available using the LED support
    161functions in the kernel.
    162
    163
    164Other useful information and links
    165----------------------------------
    166
    167http://www.silabs.com/usbradio