V4L/DVB (7038): USB radio driver for Silicon Labs Si470x FM Radio Receivers

this patch adds a new driver for the Silicon Labs Si470x FM Radio Receiver. It
should also work for the identical ADS/Tech FM Radio Receiver (formerly
Instant FM Music) as soon as I find out the USB Vendor and Product ID.

The driver is inspired by several other USB and radio drivers, but mainly from
the D-Link DSB-R100 USB radio (dsbr100.c).

The USB stick currently has an Si4701 FM RDS radio receiver. But the other
Si470x devices are pin and register compatible, so that in the future the
driver can easily be patched to support these too. Therefore I named the
driver radio-si470x and the configuration option usb-si470x.

The driver itself just provides the control function over the radio. For
getting audio back, the device support the USB audio class, which is
implemented in the already existing driver.

I tested the driver in the last days, until it now satisfies all my
functionality and robustness requirements. The application I used for testing
was kradio.

Signed-off-by: Tobias Lorenz <tobias.lorenz@gmx.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
Tobias Lorenz 2008-01-14 21:55:27 -03:00 committed by Mauro Carvalho Chehab
parent 438468359e
commit 78656acdcf
3 changed files with 1451 additions and 0 deletions

View File

@ -351,4 +351,14 @@ config USB_DSBR
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called dsbr100. module will be called dsbr100.
config USB_SI470X
tristate "Silicon Labs Si470x FM Radio Receiver support"
depends on USB && VIDEO_V4L2
---help---
Say Y here if you want to connect this type of radio to your
computer's USB port.
To compile this driver as a module, choose M here: the
module will be called radio-silabs.
endif # RADIO_ADAPTERS endif # RADIO_ADAPTERS

View File

@ -21,5 +21,6 @@ obj-$(CONFIG_RADIO_GEMTEK_PCI) += radio-gemtek-pci.o
obj-$(CONFIG_RADIO_TRUST) += radio-trust.o obj-$(CONFIG_RADIO_TRUST) += radio-trust.o
obj-$(CONFIG_RADIO_MAESTRO) += radio-maestro.o obj-$(CONFIG_RADIO_MAESTRO) += radio-maestro.o
obj-$(CONFIG_USB_DSBR) += dsbr100.o obj-$(CONFIG_USB_DSBR) += dsbr100.o
obj-$(CONFIG_USB_SI470X) := radio-si470x.o
EXTRA_CFLAGS += -Isound EXTRA_CFLAGS += -Isound

File diff suppressed because it is too large Load Diff