~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/drivers/media/video/bttv.h

Version: ~ [ 2.2.5 ] ~ [ 2.4.1 ] ~ [ 2.4.9 ] ~ [ 2.6.17.10 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  *  bttv - Bt848 frame grabber driver
  3  *
  4  *  card ID's and external interfaces of the bttv driver
  5  *  basically stuff needed by other drivers (i2c, lirc, ...)
  6  *  and is supported not to change much over time.
  7  *
  8  *  Copyright (C) 1996,97 Ralph Metzler (rjkm@thp.uni-koeln.de)
  9  *  (c) 1999,2000 Gerd Knorr <kraxel@goldbach.in-berlin.de>
 10  *
 11  */
 12 
 13 #ifndef _BTTV_H_
 14 #define _BTTV_H_
 15 
 16 #include <linux/videodev.h>
 17 
 18 /* ---------------------------------------------------------- */
 19 /* exported by bttv-cards.c                                   */
 20 
 21 #define BTTV_UNKNOWN       0x00
 22 #define BTTV_MIRO          0x01
 23 #define BTTV_HAUPPAUGE     0x02
 24 #define BTTV_STB           0x03
 25 #define BTTV_INTEL         0x04
 26 #define BTTV_DIAMOND       0x05 
 27 #define BTTV_AVERMEDIA     0x06 
 28 #define BTTV_MATRIX_VISION 0x07 
 29 #define BTTV_FLYVIDEO      0x08
 30 #define BTTV_TURBOTV       0x09
 31 #define BTTV_HAUPPAUGE878  0x0a
 32 #define BTTV_MIROPRO       0x0b
 33 #define BTTV_ADSTECH_TV    0x0c
 34 #define BTTV_AVERMEDIA98   0x0d
 35 #define BTTV_VHX           0x0e
 36 #define BTTV_ZOLTRIX       0x0f
 37 #define BTTV_PIXVIEWPLAYTV 0x10
 38 #define BTTV_WINVIEW_601   0x11
 39 #define BTTV_AVEC_INTERCAP 0x12
 40 #define BTTV_LIFE_FLYKIT   0x13
 41 #define BTTV_CEI_RAFFLES   0x14
 42 #define BTTV_CONFERENCETV  0x15
 43 #define BTTV_PHOEBE_TVMAS  0x16
 44 #define BTTV_MODTEC_205    0x17
 45 #define BTTV_MAGICTVIEW061 0x18
 46 #define BTTV_VOBIS_BOOSTAR 0x19
 47 #define BTTV_HAUPPAUG_WCAM 0x1a
 48 #define BTTV_MAXI          0x1b
 49 #define BTTV_TERRATV       0x1c
 50 #define BTTV_PXC200        0x1d
 51 #define BTTV_FLYVIDEO_98   0x1e
 52 #define BTTV_IPROTV        0x1f
 53 #define BTTV_INTEL_C_S_PCI 0x20
 54 #define BTTV_TERRATVALUE   0x21
 55 #define BTTV_WINFAST2000   0x22
 56 #define BTTV_CHRONOS_VS2   0x23
 57 #define BTTV_TYPHOON_TVIEW 0x24
 58 #define BTTV_PXELVWPLTVPRO 0x25
 59 #define BTTV_MAGICTVIEW063 0x26
 60 #define BTTV_PINNACLERAVE  0x27
 61 #define BTTV_STB2          0x28
 62 #define BTTV_AVPHONE98     0x29
 63 #define BTTV_PV951         0x2a
 64 #define BTTV_ONAIR_TV      0x2b
 65 #define BTTV_SIGMA_TVII_FM 0x2c
 66 #define BTTV_MATRIX_VISION2 0x2d
 67 #define BTTV_ZOLTRIX_GENIE 0x2e
 68 #define BTTV_TERRATVRADIO  0x2f
 69 #define BTTV_DYNALINK      0x30
 70 #define BTTV_GVBCTV3PCI    0x31
 71 #define BTTV_PXELVWPLTVPAK 0x32
 72 #define BTTV_EAGLE         0x33
 73 #define BTTV_PINNACLESTUDIO 0x34
 74 
 75 /* i2c address list */
 76 #define I2C_TSA5522        0xc2
 77 #define I2C_TDA7432        0x8a
 78 #define I2C_TDA8425        0x82
 79 #define I2C_TDA9840        0x84
 80 #define I2C_TDA9850        0xb6 /* also used by 9855,9873 */
 81 #define I2C_TDA9875        0xb0
 82 #define I2C_HAUPEE         0xa0
 83 #define I2C_STBEE          0xae
 84 #define I2C_VHX            0xc0
 85 #define I2C_MSP3400        0x80
 86 #define I2C_TEA6300        0x80
 87 #define I2C_DPL3518        0x84
 88 
 89 /* more card-specific defines */
 90 #define PT2254_L_CHANEL 0x10
 91 #define PT2254_R_CHANEL 0x08
 92 #define PT2254_DBS_IN_2 0x400
 93 #define PT2254_DBS_IN_10 0x20000
 94 #define WINVIEW_PT2254_CLK  0x40
 95 #define WINVIEW_PT2254_DATA 0x20
 96 #define WINVIEW_PT2254_STROBE 0x80
 97 
 98 struct bttv;
 99 
100 struct tvcard
101 {
102         char *name;
103         int video_inputs;
104         int audio_inputs;
105         int tuner;
106         int svhs;
107         u32 gpiomask;
108         u32 muxsel[8];
109         u32 audiomux[6]; /* Tuner, Radio, external, internal, mute, stereo */
110         u32 gpiomask2;   /* GPIO MUX mask */
111 
112         /* i2c audio flags */
113         int no_msp34xx:1;
114         int needs_tvaudio:1;
115 
116         /* other settings */
117         int pll;
118 #define PLL_NONE 0
119 #define PLL_28   1
120 #define PLL_35   2
121 
122         int tuner_type;
123         void (*audio_hook)(struct bttv *btv, struct video_audio *v, int set);
124 };
125 
126 extern struct tvcard bttv_tvcards[];
127 extern const int bttv_num_tvcards;
128 
129 /* identification / initialization of the card */
130 extern void bttv_idcard(struct bttv *btv);
131 extern void bttv_init_card(struct bttv *btv);
132 
133 /* card-specific funtions */
134 extern void tea5757_set_freq(struct bttv *btv, unsigned short freq);
135 extern void bttv_hauppauge_boot_msp34xx(struct bttv *btv);
136 
137 /* kernel cmd line parse helper */
138 extern int bttv_parse(char *str, int max, int *vals);
139 
140 /* extra tweaks for some chipsets */
141 extern void bttv_check_chipset(void);
142 extern int bttv_handle_chipset(struct bttv *btv);
143 
144 /* ---------------------------------------------------------- */
145 /* exported by bttv-if.c                                      */
146 /* interface for gpio access by other modules                 */
147 
148 /* returns card type + card ID (for bt878-based ones)
149    for possible values see lines below beginning with #define BTTV_UNKNOWN
150    returns negative value if error ocurred 
151 */
152 extern int bttv_get_cardinfo(unsigned int card, int *type, int *cardid);
153 
154 /* obsolete, use bttv_get_cardinfo instead */
155 extern int bttv_get_id(unsigned int card);
156 
157 /* sets GPOE register (BT848_GPIO_OUT_EN) to new value:
158    data | (current_GPOE_value & ~mask)
159    returns negative value if error ocurred
160 */
161 extern int bttv_gpio_enable(unsigned int card,
162                             unsigned long mask, unsigned long data);
163 
164 /* fills data with GPDATA register contents
165    returns negative value if error ocurred
166 */
167 extern int bttv_read_gpio(unsigned int card, unsigned long *data);
168 
169 /* sets GPDATA register to new value:
170   (data & mask) | (current_GPDATA_value & ~mask)
171   returns negative value if error ocurred 
172 */
173 extern int bttv_write_gpio(unsigned int card,
174                            unsigned long mask, unsigned long data);
175 
176 /* returns pointer to task queue which can be used as parameter to 
177    interruptible_sleep_on
178    in interrupt handler if BT848_INT_GPINT bit is set - this queue is activated
179    (wake_up_interruptible) and following call to the function bttv_read_gpio 
180    should return new value of GPDATA,
181    returns NULL value if error ocurred or queue is not available
182    WARNING: because there is no buffer for GPIO data, one MUST 
183    process data ASAP
184 */
185 extern wait_queue_head_t* bttv_get_gpio_queue(unsigned int card);
186 
187 /* i2c */
188 #define I2C_CLIENTS_MAX 8
189 struct i2c_algo_bit_data bttv_i2c_algo_template;
190 struct i2c_adapter bttv_i2c_adap_template;
191 struct i2c_client bttv_i2c_client_template;
192 void bttv_bit_setscl(void *data, int state);
193 void bttv_bit_setsda(void *data, int state);
194 void bttv_call_i2c_clients(struct bttv *btv, unsigned int cmd, void *arg);
195 int bttv_I2CRead(struct bttv *btv, unsigned char addr, char *probe_for);
196 int bttv_I2CWrite(struct bttv *btv, unsigned char addr, unsigned char b1,
197              unsigned char b2, int both);
198 void bttv_readee(struct bttv *btv, unsigned char *eedata, int addr);
199 
200 #endif /* _BTTV_H_ */
201 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.