2007-11-26 01:53:12 -03:00
/*
*
* $ Id $
*
* Copyright ( C ) 2005 Mike Isely < isely @ pobox . com >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*
*/
# ifndef __PVRUSB2_DEVATTR_H
# define __PVRUSB2_DEVATTR_H
# include <linux/mod_devicetable.h>
2007-12-02 23:51:34 -03:00
# include <linux/videodev2.h>
2007-11-26 01:53:12 -03:00
/*
This header defines structures used to describe attributes of a device .
*/
struct pvr2_string_table {
const char * * lst ;
unsigned int cnt ;
} ;
2007-11-26 02:07:26 -03:00
# define PVR2_ROUTING_SCHEME_HAUPPAUGE 0
2007-11-26 02:14:23 -03:00
# define PVR2_ROUTING_SCHEME_GOTVIEW 1
2007-11-26 01:53:12 -03:00
/* This describes a particular hardware type (except for the USB device ID
which must live in a separate structure due to environmental
constraints ) . See the top of pvrusb2 - hdw . c for where this is
instantiated . */
struct pvr2_device_desc {
/* Single line text description of hardware */
const char * description ;
/* Single token identifier for hardware */
const char * shortname ;
/* List of additional client modules we need to load */
struct pvr2_string_table client_modules ;
/* List of FX2 firmware file names we should search; if empty then
FX2 firmware check / load is skipped and we assume the device
was initialized from internal ROM . */
struct pvr2_string_table fx2_firmware ;
2007-11-26 02:07:26 -03:00
/* Signal routing scheme used by device, contains one of
PVR2_ROUTING_SCHEME_XXX . Schemes have to be defined as we
encounter them . This is an arbitrary integer scheme id ; its
meaning is contained entirely within the driver and is
interpreted by logic which must send commands to the chip - level
drivers ( search for things which touch this field ) . */
unsigned int signal_routing_scheme ;
2007-11-26 02:04:11 -03:00
/* V4L tuner type ID to use with this device (only used if the
driver could not discover the type any other way ) . */
int default_tuner_type ;
2007-12-02 23:51:34 -03:00
/* Initial standard bits to use for this device, if not zero.
Anything set here is also implied as an available standard .
Note : This is ignored if overridden on the module load line via
the video_std module option . */
v4l2_std_id default_std_mask ;
2007-11-26 01:53:12 -03:00
/* If set, we don't bother trying to load cx23416 firmware. */
char flag_skip_cx23416_firmware ;
2007-11-26 02:04:11 -03:00
/* Device has a hauppauge eeprom which we can interrogate. */
char flag_has_hauppauge_rom ;
2007-11-26 01:53:12 -03:00
/* Device does not require a powerup command to be issued. */
char flag_no_powerup ;
/* Device has a cx25840 - this enables special additional logic to
handle it . */
char flag_has_cx25840 ;
/* Device has a wm8775 - this enables special additional logic to
ensure that it is found . */
char flag_has_wm8775 ;
2007-11-26 02:09:42 -03:00
/* Device has IR hardware that can be faked into looking like a
2007-12-03 01:45:26 -03:00
normal Hauppauge i2c IR receiver . This is currently very
specific to the 24 xxx device , where Hauppauge had replaced their
' standard ' I2C IR receiver with a bunch of FPGA logic controlled
directly via the FX2 . Turning this on tells the pvrusb2 driver
to virtualize the presence of the non - existant IR receiver chip and
implement the virtual receiver in terms of appropriate FX2
commands . */
2007-11-26 02:09:42 -03:00
char flag_has_hauppauge_custom_ir ;
2008-04-22 14:45:36 -03:00
2008-04-22 14:45:36 -03:00
/* These bits define which kinds of sources the device can handle. */
char flag_has_fmradio ; /* Has FM radio receiver */
char flag_has_analogtuner ; /* Has analog tuner */
char flag_has_digitaltuner ; /* Has digital tuner */
char flag_has_composite ; /* Has composite input */
char flag_has_svideo ; /* Has s-video input */
2007-11-26 01:53:12 -03:00
} ;
extern struct usb_device_id pvr2_device_table [ ] ;
# endif /* __PVRUSB2_HDW_INTERNAL_H */
/*
Stuff for Emacs to see , in order to encourage consistent editing style :
* * * Local Variables : * * *
* * * mode : c * * *
* * * fill - column : 75 * * *
* * * tab - width : 8 * * *
* * * c - basic - offset : 8 * * *
* * * End : * * *
*/