diff options
Diffstat (limited to 'drivers/char/bttv.h')
-rw-r--r-- | drivers/char/bttv.h | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/drivers/char/bttv.h b/drivers/char/bttv.h new file mode 100644 index 000000000..e1c54e94c --- /dev/null +++ b/drivers/char/bttv.h @@ -0,0 +1,162 @@ +/* + bttv - Bt848 frame grabber driver + + Copyright (C) 1996,97 Ralph Metzler (rjkm@thp.uni-koeln.de) + + 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, or + (at your option) any later version. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef _BTTV_H_ +#define _BTTV_H_ + +#define TEST_VBI + +#include <linux/types.h> +#include <linux/wait.h> + +#include "bt848.h" + +typedef unsigned int dword; + +struct riscprog { + uint length; + dword *busadr; + dword *prog; +}; + +/* values that can be set by user programs */ + +struct bttv_window { + int x, y; + ushort width, height; + ushort bpp, bpl; + ushort swidth, sheight; + short cropx, cropy; + ushort cropwidth, cropheight; + int vidadr; + ushort freq; + int norm; + int interlace; + int color_fmt; +}; + +/* private data that can only be read (or set indirectly) by user program */ + +struct bttv { + struct video_device video_dev; + struct video_picture picture; /* Current picture params */ + struct video_audio audio_dev; /* Current audio params */ + u_char bus; /* PCI bus the Bt848 is on */ + u_char devfn; + u_char revision; + u_char irq; /* IRQ used by Bt848 card */ + uint bt848_adr; /* bus address of IO mem returned by PCI BIOS */ + u_char *bt848_mem; /* pointer to mapped IO memory */ + ulong busriscmem; + dword *riscmem; + + u_char *vbibuf; + struct bttv_window win; + int type; /* card type */ + int audio; /* audio mode */ + int user; + int tuner; + int tuneradr; + int dbx; + + dword *risc_jmp; + dword *vbi_odd; + dword *vbi_even; + dword bus_vbi_even; + dword bus_vbi_odd; + struct wait_queue *vbiq; + struct wait_queue *capq; + int vbip; + + dword *risc_odd; + dword *risc_even; + int cap; +}; + +/*The following should be done in more portable way. It depends on define + of _ALPHA_BTTV in the Makefile.*/ +#ifdef _ALPHA_BTTV +#define btwrite(dat,adr) writel((dat),(char *) (btv->bt848_adr+(adr))) +#define btread(adr) readl(btv->bt848_adr+(adr)) +#else +#define btwrite(dat,adr) writel((dat), (char *) (btv->bt848_mem+(adr))) +#define btread(adr) readl(btv->bt848_mem+(adr)) +#endif + +#define btand(dat,adr) btwrite((dat) & btread(adr), adr) +#define btor(dat,adr) btwrite((dat) | btread(adr), adr) +#define btaor(dat,mask,adr) btwrite((dat) | ((mask) & btread(adr)), adr) + +/* bttv ioctls */ +#define BTTV_WRITE_BTREG 0x00 +#define BTTV_READ_BTREG 0x01 +#define BTTV_SET_BTREG 0x02 +#define BTTV_SETRISC 0x03 +#define BTTV_SETWTW 0x04 +#define BTTV_GETWTW 0x05 +#define BTTV_DMA 0x06 +#define BTTV_CAP_OFF 0x07 +#define BTTV_CAP_ON 0x08 +#define BTTV_GETBTTV 0x09 +#define BTTV_SETFREQ 0x0a +#define BTTV_SETCHAN 0x0b +#define BTTV_INPUT 0x0c +#define BTTV_READEE 0x0d +#define BTTV_WRITEEE 0x0e +#define BTTV_BRIGHT 0x0f +#define BTTV_HUE 0x10 +#define BTTV_COLOR 0x11 +#define BTTV_CONTRAST 0x12 +#define BTTV_SET_FFREQ 0x13 +#define BTTV_MUTE 0x14 + +#define BTTV_GRAB 0x20 +#define BTTV_TESTM 0x20 + + +#define BTTV_UNKNOWN 0x00 +#define BTTV_MIRO 0x01 +#define BTTV_HAUPPAUGE 0x02 +#define BTTV_STB 0x03 +#define BTTV_INTEL 0x04 +#define BTTV_DIAMOND 0x05 + +#define AUDIO_TUNER 0x00 +#define AUDIO_EXTERN 0x01 +#define AUDIO_INTERN 0x02 +#define AUDIO_OFF 0x03 +#define AUDIO_ON 0x04 +#define AUDIO_MUTE 0x80 +#define AUDIO_UNMUTE 0x81 + +#define I2C_TSA5522 0xc2 +#define I2C_TDA9850 0xb6 +#define I2C_HAUPEE 0xa0 +#define I2C_STBEE 0xae + +#define TDA9850_CON1 0x04 +#define TDA9850_CON2 0x05 +#define TDA9850_CON3 0x06 +#define TDA9850_CON4 0x07 +#define TDA9850_ALI1 0x08 +#define TDA9850_ALI2 0x09 +#define TDA9850_ALI3 0x0a + +#endif |