Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
radio-si470x-usb.c File Reference
#include <linux/usb.h>
#include <linux/hid.h>
#include <linux/slab.h>
#include "radio-si470x.h"

Go to the source code of this file.

Macros

#define DRIVER_AUTHOR   "Tobias Lorenz <[email protected]>"
 
#define DRIVER_CARD   "Silicon Labs Si470x FM Radio Receiver"
 
#define DRIVER_DESC   "USB radio driver for Si470x FM Radio Receivers"
 
#define DRIVER_VERSION   "1.0.10"
 
#define REGISTER_REPORT_SIZE   (RADIO_REGISTER_SIZE + 1)
 
#define REGISTER_REPORT(reg)   ((reg) + 1)
 
#define ENTIRE_REPORT_SIZE   (RADIO_REGISTER_NUM * RADIO_REGISTER_SIZE + 1)
 
#define ENTIRE_REPORT   17
 
#define RDS_REPORT_SIZE   (RDS_REGISTER_NUM * RADIO_REGISTER_SIZE + 1)
 
#define RDS_REPORT   18
 
#define LED_REPORT_SIZE   3
 
#define LED_REPORT   19
 
#define STREAM_REPORT_SIZE   3
 
#define STREAM_REPORT   19
 
#define SCRATCH_PAGE_SIZE   63
 
#define SCRATCH_REPORT_SIZE   (SCRATCH_PAGE_SIZE + 1)
 
#define SCRATCH_REPORT   20
 
#define WRITE_REPORT_SIZE   4
 
#define WRITE_REPORT   19
 
#define FLASH_REPORT_SIZE   64
 
#define FLASH_REPORT   20
 
#define CRC_REPORT_SIZE   3
 
#define CRC_REPORT   21
 
#define RESPONSE_REPORT_SIZE   2
 
#define RESPONSE_REPORT   22
 
#define UNUSED_REPORT   23
 
#define RADIO_SW_VERSION_NOT_BOOTLOADABLE   6
 
#define RADIO_SW_VERSION   1
 
#define RADIO_HW_VERSION   1
 
#define LED_COMMAND   0x35
 
#define NO_CHANGE_LED   0x00
 
#define ALL_COLOR_LED   0x01 /* streaming state */
 
#define BLINK_GREEN_LED   0x02 /* connect state */
 
#define BLINK_RED_LED   0x04
 
#define BLINK_ORANGE_LED   0x10 /* disconnect state */
 
#define SOLID_GREEN_LED   0x20 /* tuning/seeking state */
 
#define SOLID_RED_LED   0x40 /* bootload state */
 
#define SOLID_ORANGE_LED   0x80
 
#define STREAM_COMMAND   0x36
 
#define STREAM_VIDPID   0x00
 
#define STREAM_AUDIO   0xff
 
#define UNIQUE_BL_ID   0x34
 
#define FLASH_DATA_MASK   0x55
 
#define GET_SW_VERSION_COMMAND   0x00
 
#define SET_PAGE_COMMAND   0x01
 
#define ERASE_PAGE_COMMAND   0x02
 
#define WRITE_PAGE_COMMAND   0x03
 
#define CRC_ON_PAGE_COMMAND   0x04
 
#define READ_FLASH_BYTE_COMMAND   0x05
 
#define RESET_DEVICE_COMMAND   0x06
 
#define GET_HW_VERSION_COMMAND   0x07
 
#define BLANK   0xff
 
#define COMMAND_OK   0x01
 
#define COMMAND_FAILED   0x02
 
#define COMMAND_PENDING   0x03
 

Functions

 MODULE_DEVICE_TABLE (usb, si470x_usb_driver_id_table)
 
 module_param (radio_nr, int, 0444)
 
 MODULE_PARM_DESC (radio_nr,"Radio Nr")
 
 module_param (usb_timeout, uint, 0644)
 
 MODULE_PARM_DESC (usb_timeout,"USB timeout (ms): *500*")
 
 module_param (rds_buf, uint, 0444)
 
 MODULE_PARM_DESC (rds_buf,"RDS buffer entries: *100*")
 
 module_param (max_rds_errors, ushort, 0644)
 
 MODULE_PARM_DESC (max_rds_errors,"RDS maximum block errors: *1*")
 
int si470x_get_register (struct si470x_device *radio, int regnr)
 
int si470x_set_register (struct si470x_device *radio, int regnr)
 
int si470x_fops_open (struct file *file)
 
int si470x_fops_release (struct file *file)
 
int si470x_vidioc_querycap (struct file *file, void *priv, struct v4l2_capability *capability)
 
 module_usb_driver (si470x_usb_driver)
 
 MODULE_LICENSE ("GPL")
 
 MODULE_AUTHOR (DRIVER_AUTHOR)
 
 MODULE_DESCRIPTION (DRIVER_DESC)
 
 MODULE_VERSION (DRIVER_VERSION)
 

Macro Definition Documentation

#define ALL_COLOR_LED   0x01 /* streaming state */

Definition at line 157 of file radio-si470x-usb.c.

#define BLANK   0xff

Definition at line 195 of file radio-si470x-usb.c.

#define BLINK_GREEN_LED   0x02 /* connect state */

Definition at line 158 of file radio-si470x-usb.c.

#define BLINK_ORANGE_LED   0x10 /* disconnect state */

Definition at line 160 of file radio-si470x-usb.c.

#define BLINK_RED_LED   0x04

Definition at line 159 of file radio-si470x-usb.c.

#define COMMAND_FAILED   0x02

Definition at line 199 of file radio-si470x-usb.c.

#define COMMAND_OK   0x01

Definition at line 198 of file radio-si470x-usb.c.

#define COMMAND_PENDING   0x03

Definition at line 200 of file radio-si470x-usb.c.

#define CRC_ON_PAGE_COMMAND   0x04

Definition at line 191 of file radio-si470x-usb.c.

#define CRC_REPORT   21

Definition at line 132 of file radio-si470x-usb.c.

#define CRC_REPORT_SIZE   3

Definition at line 131 of file radio-si470x-usb.c.

#define DRIVER_AUTHOR   "Tobias Lorenz <[email protected]>"

Definition at line 31 of file radio-si470x-usb.c.

#define DRIVER_CARD   "Silicon Labs Si470x FM Radio Receiver"

Definition at line 32 of file radio-si470x-usb.c.

#define DRIVER_DESC   "USB radio driver for Si470x FM Radio Receivers"

Definition at line 33 of file radio-si470x-usb.c.

#define DRIVER_VERSION   "1.0.10"

Definition at line 34 of file radio-si470x-usb.c.

#define ENTIRE_REPORT   17

Definition at line 106 of file radio-si470x-usb.c.

#define ENTIRE_REPORT_SIZE   (RADIO_REGISTER_NUM * RADIO_REGISTER_SIZE + 1)

Definition at line 105 of file radio-si470x-usb.c.

#define ERASE_PAGE_COMMAND   0x02

Definition at line 189 of file radio-si470x-usb.c.

#define FLASH_DATA_MASK   0x55

Definition at line 184 of file radio-si470x-usb.c.

#define FLASH_REPORT   20

Definition at line 130 of file radio-si470x-usb.c.

#define FLASH_REPORT_SIZE   64

Definition at line 129 of file radio-si470x-usb.c.

#define GET_HW_VERSION_COMMAND   0x07

Definition at line 194 of file radio-si470x-usb.c.

#define GET_SW_VERSION_COMMAND   0x00

Definition at line 187 of file radio-si470x-usb.c.

#define LED_COMMAND   0x35

Definition at line 154 of file radio-si470x-usb.c.

#define LED_REPORT   19

Definition at line 115 of file radio-si470x-usb.c.

#define LED_REPORT_SIZE   3

Definition at line 114 of file radio-si470x-usb.c.

#define NO_CHANGE_LED   0x00

Definition at line 156 of file radio-si470x-usb.c.

#define RADIO_HW_VERSION   1

Definition at line 147 of file radio-si470x-usb.c.

#define RADIO_SW_VERSION   1

Definition at line 146 of file radio-si470x-usb.c.

#define RADIO_SW_VERSION_NOT_BOOTLOADABLE   6

Definition at line 145 of file radio-si470x-usb.c.

#define RDS_REPORT   18

Definition at line 111 of file radio-si470x-usb.c.

#define RDS_REPORT_SIZE   (RDS_REGISTER_NUM * RADIO_REGISTER_SIZE + 1)

Definition at line 110 of file radio-si470x-usb.c.

#define READ_FLASH_BYTE_COMMAND   0x05

Definition at line 192 of file radio-si470x-usb.c.

#define REGISTER_REPORT (   reg)    ((reg) + 1)

Definition at line 101 of file radio-si470x-usb.c.

#define REGISTER_REPORT_SIZE   (RADIO_REGISTER_SIZE + 1)

Definition at line 100 of file radio-si470x-usb.c.

#define RESET_DEVICE_COMMAND   0x06

Definition at line 193 of file radio-si470x-usb.c.

#define RESPONSE_REPORT   22

Definition at line 134 of file radio-si470x-usb.c.

#define RESPONSE_REPORT_SIZE   2

Definition at line 133 of file radio-si470x-usb.c.

#define SCRATCH_PAGE_SIZE   63

Definition at line 122 of file radio-si470x-usb.c.

#define SCRATCH_REPORT   20

Definition at line 124 of file radio-si470x-usb.c.

#define SCRATCH_REPORT_SIZE   (SCRATCH_PAGE_SIZE + 1)

Definition at line 123 of file radio-si470x-usb.c.

#define SET_PAGE_COMMAND   0x01

Definition at line 188 of file radio-si470x-usb.c.

#define SOLID_GREEN_LED   0x20 /* tuning/seeking state */

Definition at line 161 of file radio-si470x-usb.c.

#define SOLID_ORANGE_LED   0x80

Definition at line 163 of file radio-si470x-usb.c.

#define SOLID_RED_LED   0x40 /* bootload state */

Definition at line 162 of file radio-si470x-usb.c.

#define STREAM_AUDIO   0xff

Definition at line 172 of file radio-si470x-usb.c.

#define STREAM_COMMAND   0x36

Definition at line 170 of file radio-si470x-usb.c.

#define STREAM_REPORT   19

Definition at line 119 of file radio-si470x-usb.c.

#define STREAM_REPORT_SIZE   3

Definition at line 118 of file radio-si470x-usb.c.

#define STREAM_VIDPID   0x00

Definition at line 171 of file radio-si470x-usb.c.

#define UNIQUE_BL_ID   0x34

Definition at line 181 of file radio-si470x-usb.c.

#define UNUSED_REPORT   23

Definition at line 138 of file radio-si470x-usb.c.

#define WRITE_PAGE_COMMAND   0x03

Definition at line 190 of file radio-si470x-usb.c.

#define WRITE_REPORT   19

Definition at line 128 of file radio-si470x-usb.c.

#define WRITE_REPORT_SIZE   4

Definition at line 127 of file radio-si470x-usb.c.

Function Documentation

MODULE_AUTHOR ( DRIVER_AUTHOR  )
MODULE_DESCRIPTION ( DRIVER_DESC  )
MODULE_DEVICE_TABLE ( usb  ,
si470x_usb_driver_id_table   
)
MODULE_LICENSE ( "GPL"  )
module_param ( radio_nr  ,
int  ,
0444   
)
module_param ( usb_timeout  ,
uint  ,
0644   
)
module_param ( rds_buf  ,
uint  ,
0444   
)
module_param ( max_rds_errors  ,
ushort  ,
0644   
)
MODULE_PARM_DESC ( radio_nr  ,
"Radio Nr"   
)
MODULE_PARM_DESC ( usb_timeout  ,
"USB timeout (ms): *500*"   
)
MODULE_PARM_DESC ( rds_buf  ,
"RDS buffer entries: *100*"   
)
MODULE_PARM_DESC ( max_rds_errors  ,
"RDS maximum block errors: *1*"   
)
module_usb_driver ( si470x_usb_driver  )
MODULE_VERSION ( DRIVER_VERSION  )
int si470x_fops_open ( struct file file)

Definition at line 494 of file radio-si470x-usb.c.

int si470x_fops_release ( struct file file)

Definition at line 499 of file radio-si470x-usb.c.

int si470x_get_register ( struct si470x_device radio,
int  regnr 
)

Definition at line 257 of file radio-si470x-usb.c.

int si470x_set_register ( struct si470x_device radio,
int  regnr 
)

Definition at line 276 of file radio-si470x-usb.c.

int si470x_vidioc_querycap ( struct file file,
void priv,
struct v4l2_capability capability 
)

Definition at line 525 of file radio-si470x-usb.c.