master
  1/*	$NetBSD: bt8xx.h,v 1.9 2008/01/16 13:08:54 jmcneill Exp $	*/
  2
  3/* This file is merged from ioctl_meteor.h and ioctl_bt848.h from FreeBSD. */
  4/* The copyright below only applies to the ioctl_meteor.h part of this file. */
  5
  6#ifndef _DEV_IC_BT8XX_H_
  7#define _DEV_IC_BT8XX_H_
  8/* $SourceForge: ioctl_meteor.h,v 1.4 2003/03/11 23:11:29 thomasklausner Exp $ */
  9
 10/*
 11 * Copyright (c) 1995 Mark Tinguely and Jim Lowe
 12 * All rights reserved.
 13 *
 14 * Redistribution and use in source and binary forms, with or without
 15 * modification, are permitted provided that the following conditions
 16 * are met:
 17 * 1. Redistributions of source code must retain the above copyright
 18 *    notice, this list of conditions and the following disclaimer.
 19 * 2. Redistributions in binary form must reproduce the above copyright
 20 *    notice, this list of conditions and the following disclaimer in the
 21 *    documentation and/or other materials provided with the distribution.
 22 * 3. All advertising materials mentioning features or use of this software
 23 *    must display the following acknowledgement:
 24 *	This product includes software developed by Mark Tinguely and Jim Lowe
 25 * 4. The name of the author may not be used to endorse or promote products
 26 *    derived from this software without specific prior written permission.
 27 *
 28 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 29 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 30 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 31 * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
 32 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 33 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 34 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 36 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 37 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 38 * POSSIBILITY OF SUCH DAMAGE.
 39 *
 40 * $FreeBSD: src/sys/i386/include/ioctl_meteor.h,v 1.11 1999/12/29 04:33:02 peter Exp $
 41 */
 42/*
 43 *	ioctl constants for Matrox Meteor Capture card.
 44 */
 45
 46
 47#ifndef _KERNEL
 48#include <sys/types.h>
 49#endif
 50#include <sys/ioccom.h>
 51
 52struct meteor_capframe {
 53	short	command;	/* see below for valid METEORCAPFRM commands */
 54	short	lowat;		/* start transfer if < this number */
 55	short	hiwat;		/* stop transfer if > this number */
 56};
 57
 58/* structure for METEOR[GS]ETGEO - get/set geometry  */
 59struct meteor_geomet {
 60	u_short		rows;
 61	u_short		columns;
 62	u_short		frames;
 63	u_int		oformat;
 64};
 65
 66/* structure for METEORGCOUNT-get count of frames, fifo errors and DMA errors */
 67struct meteor_counts {
 68	u_int fifo_errors;	/* count of fifo errors since open */
 69	u_int dma_errors;	/* count of DMA errors since open */
 70	u_int frames_captured;	/* count of frames captured since open */
 71	u_int even_fields_captured; /* count of even fields captured */
 72	u_int odd_fields_captured; /* count of odd fields captured */
 73};
 74
 75/* structure for getting and setting direct transfers to vram */
 76struct meteor_video {
 77	u_int	addr;	/* Address of location to DMA to */
 78	u_int	width;	/* Width of memory area */
 79	u_int	banksize;	/* Size of Vram bank */
 80	u_int	ramsize;	/* Size of Vram */
 81};
 82
 83#define METEORCAPTUR _IOW('x', 1, int)			 /* capture a frame */
 84#define METEORCAPFRM _IOW('x', 2, struct meteor_capframe)  /* sync capture */
 85#define METEORSETGEO _IOW('x', 3, struct meteor_geomet)  /* set geometry */
 86#define METEORGETGEO _IOR('x', 4, struct meteor_geomet)  /* get geometry */
 87#define METEORSTATUS _IOR('x', 5, unsigned short)	/* get status */
 88#define METEORSHUE   _IOW('x', 6, signed char)		/* set hue */
 89#define METEORGHUE   _IOR('x', 6, signed char)		/* get hue */
 90#define METEORSFMT   _IOW('x', 7, unsigned int)	/* set format */
 91#define METEORGFMT   _IOR('x', 7, unsigned int)	/* get format */
 92#define METEORSINPUT _IOW('x', 8, unsigned int)	/* set input dev */
 93#define METEORGINPUT _IOR('x', 8, unsigned int)	/* get input dev */
 94#define	METEORSCHCV  _IOW('x', 9, unsigned char)	/* set uv gain */
 95#define	METEORGCHCV  _IOR('x', 9, unsigned char)	/* get uv gain */
 96#define	METEORSCOUNT _IOW('x',10, struct meteor_counts)
 97#define	METEORGCOUNT _IOR('x',10, struct meteor_counts)
 98#define METEORSFPS   _IOW('x',11, unsigned short)	/* set fps */
 99#define METEORGFPS   _IOR('x',11, unsigned short)	/* get fps */
100#define METEORSSIGNAL _IOW('x', 12, unsigned int)	/* set signal */
101#define METEORGSIGNAL _IOR('x', 12, unsigned int)	/* get signal */
102#define	METEORSVIDEO _IOW('x', 13, struct meteor_video)	/* set video */
103#define	METEORGVIDEO _IOR('x', 13, struct meteor_video)	/* get video */
104#define	METEORSBRIG  _IOW('x', 14, unsigned char)	/* set brightness */
105#define METEORGBRIG  _IOR('x', 14, unsigned char)	/* get brightness */
106#define	METEORSCSAT  _IOW('x', 15, unsigned char)	/* set chroma sat */
107#define METEORGCSAT  _IOR('x', 15, unsigned char)	/* get uv saturation */
108#define	METEORSCONT  _IOW('x', 16, unsigned char)	/* set contrast */
109#define	METEORGCONT  _IOR('x', 16, unsigned char)	/* get contrast */
110#define METEORSBT254 _IOW('x', 17, unsigned short)	/* set Bt254 reg */
111#define METEORGBT254 _IOR('x', 17, unsigned short)	/* get Bt254 reg */
112#define METEORSHWS   _IOW('x', 18, unsigned char)	/* set hor start reg */
113#define METEORGHWS   _IOR('x', 18, unsigned char)	/* get hor start reg */
114#define METEORSVWS   _IOW('x', 19, unsigned char)	/* set vert start reg */
115#define METEORGVWS   _IOR('x', 19, unsigned char)	/* get vert start reg */
116#define	METEORSTS    _IOW('x', 20, unsigned char)	/* set time stamp */
117#define	METEORGTS    _IOR('x', 20, unsigned char)	/* get time stamp */
118
119#define	METEOR_STATUS_ID_MASK	0xf000	/* ID of 7196 */
120#define	METEOR_STATUS_DIR	0x0800	/* Direction of Expansion port YUV */
121#define	METEOR_STATUS_OEF	0x0200	/* Field detected: Even/Odd */
122#define	METEOR_STATUS_SVP	0x0100	/* State of VRAM Port:inactive/active */
123#define	METEOR_STATUS_STTC	0x0080	/* Time Constant: TV/VCR */
124#define	METEOR_STATUS_HCLK	0x0040	/* Horiz PLL: locked/unlocked */
125#define	METEOR_STATUS_FIDT	0x0020	/* Field detect: 50/60Hz */
126#define	METEOR_STATUS_ALTD	0x0002	/* Line alt: no line alt/line alt */
127#define METEOR_STATUS_CODE	0x0001	/* Colour info: no colour/colour */
128
129				/* METEORCAPTUR capture options */
130#define METEOR_CAP_SINGLE	0x0001	/* capture one frame */
131#define METEOR_CAP_CONTINOUS	0x0002	/* continuously capture */
132#define METEOR_CAP_STOP_CONT	0x0004	/* stop the continuous capture */
133
134				/* METEORCAPFRM capture commands */
135#define METEOR_CAP_N_FRAMES	0x0001	/* capture N frames */
136#define METEOR_CAP_STOP_FRAMES	0x0002	/* stop capture N frames */
137#define	METEOR_HALT_N_FRAMES	0x0003	/* halt of capture N frames */
138#define METEOR_CONT_N_FRAMES	0x0004	/* continue after above halt */
139
140				/* valid video input formats:  */
141#define METEOR_FMT_NTSC		0x00100	/* NTSC --  initialized default */
142#define METEOR_FMT_PAL		0x00200	/* PAL */
143#define METEOR_FMT_SECAM	0x00400	/* SECAM */
144#define METEOR_FMT_AUTOMODE	0x00800 /* auto-mode */
145#define METEOR_INPUT_DEV0	0x01000	/* camera input 0 -- default */
146#define METEOR_INPUT_DEV_RCA	METEOR_INPUT_DEV0
147#define METEOR_INPUT_DEV1	0x02000	/* camera input 1 */
148#define METEOR_INPUT_DEV2	0x04000	/* camera input 2 */
149#define METEOR_INPUT_DEV3	0x08000	/* camera input 3 */
150#define METEOR_INPUT_DEV_RGB	0x0a000	/* for rgb version of meteor */
151#define METEOR_INPUT_DEV_SVIDEO	0x06000 /* S-video input port */
152
153				/* valid video output formats:  */
154#define METEOR_GEO_RGB16	0x0010000 /* packed -- initialized default */
155#define METEOR_GEO_RGB24	0x0020000 /* RBG 24 bits packed */
156					  /* internally stored in 32 bits */
157#define METEOR_GEO_YUV_PACKED	0x0040000 /* 4-2-2 YUV 16 bits packed */
158#define METEOR_GEO_YUV_PLANAR	0x0080000 /* 4-2-2 YUV 16 bits planer */
159#define METEOR_GEO_YUV_PLANER	METEOR_GEO_YUV_PLANAR
160#define METEOR_GEO_UNSIGNED	0x0400000 /* unsigned uv outputs */
161#define METEOR_GEO_EVEN_ONLY	0x1000000 /* set for even only field capture */
162#define METEOR_GEO_ODD_ONLY	0x2000000 /* set for odd only field capture */
163#define METEOR_GEO_FIELD_MASK	0x3000000
164#define METEOR_GEO_YUV_422	0x4000000 /* 4-2-2 YUV in Y-U-V combined */
165#define METEOR_GEO_OUTPUT_MASK	0x40f0000
166#define METEOR_GEO_YUV_12	0x10000000	/* YUV 12 format */
167#define METEOR_GEO_YUV_9	0x40000000	/* YUV 9 format */
168
169#define	METEOR_FIELD_MODE	0x80000000	/* Field cap or Frame cap */
170
171#define	METEOR_SIG_MODE_MASK	0xffff0000
172#define	METEOR_SIG_FRAME	0x00000000	/* signal every frame */
173#define	METEOR_SIG_FIELD	0x00010000	/* signal every field */
174
175	/* following structure is used to coordinate the synchronous */
176
177struct meteor_mem {
178		/* kernel write only  */
179	int	frame_size;	 /* row*columns*depth */
180	unsigned num_bufs;	 /* number of frames in buffer (1-32) */
181		/* user and kernel change these */
182	int	lowat;		 /* kernel starts capture if < this number */
183	int	hiwat;		 /* kernel stops capture if > this number.
184				    hiwat <= numbufs */
185	unsigned active;	 /* bit mask of active frame buffers
186				    kernel sets, user clears */
187	int	num_active_bufs; /* count of active frame buffer
188				    kernel increments, user decrements */
189
190		/* reference to mmapped data */
191	void *	buf;		 /* The real space (virtual addr) */
192};
193
194/* $SourceForge: ioctl_bt848.h,v 1.4 2003/03/11 23:11:29 thomasklausner Exp $ */
195
196/*
197 * extensions to ioctl_meteor.h for the bt848 cards
198 *
199 * $FreeBSD: src/sys/i386/include/ioctl_bt848.h,v 1.27 2000/10/26 16:41:48 roger Exp $
200 */
201
202
203/*
204 * frequency sets
205 */
206#define CHNLSET_NABCST		1
207#define CHNLSET_CABLEIRC	2
208#define CHNLSET_CABLEHRC	3
209#define CHNLSET_WEUROPE		4
210#define CHNLSET_JPNBCST         5
211#define CHNLSET_JPNCABLE        6
212#define CHNLSET_XUSSR           7
213#define CHNLSET_AUSTRALIA       8
214#define CHNLSET_FRANCE          9
215#define CHNLSET_MIN	        CHNLSET_NABCST
216#define CHNLSET_MAX	        CHNLSET_FRANCE
217
218
219/*
220 * constants for various tuner registers
221 */
222#define BT848_HUEMIN		(-90)
223#define BT848_HUEMAX		90
224#define BT848_HUECENTER		0
225#define BT848_HUERANGE		179.3
226#define BT848_HUEREGMIN		(-128)
227#define BT848_HUEREGMAX		127
228#define BT848_HUESTEPS		256
229
230#define BT848_BRIGHTMIN		(-50)
231#define BT848_BRIGHTMAX		50
232#define BT848_BRIGHTCENTER	0
233#define BT848_BRIGHTRANGE	99.6
234#define BT848_BRIGHTREGMIN	(-128)
235#define BT848_BRIGHTREGMAX	127
236#define BT848_BRIGHTSTEPS	256
237
238#define BT848_CONTRASTMIN	0
239#define BT848_CONTRASTMAX	237
240#define BT848_CONTRASTCENTER	100
241#define BT848_CONTRASTRANGE	236.57
242#define BT848_CONTRASTREGMIN	0
243#define BT848_CONTRASTREGMAX	511
244#define BT848_CONTRASTSTEPS	512
245
246#define BT848_CHROMAMIN		0
247#define BT848_CHROMAMAX		284
248#define BT848_CHROMACENTER	100
249#define BT848_CHROMARANGE	283.89
250#define BT848_CHROMAREGMIN	0
251#define BT848_CHROMAREGMAX	511
252#define BT848_CHROMASTEPS	512
253
254#define BT848_SATUMIN		0
255#define BT848_SATUMAX		202
256#define BT848_SATUCENTER	100
257#define BT848_SATURANGE		201.18
258#define BT848_SATUREGMIN	0
259#define BT848_SATUREGMAX	511
260#define BT848_SATUSTEPS		512
261
262#define BT848_SATVMIN		0
263#define BT848_SATVMAX		284
264#define BT848_SATVCENTER	100
265#define BT848_SATVRANGE		283.89
266#define BT848_SATVREGMIN	0
267#define BT848_SATVREGMAX	511
268#define BT848_SATVSTEPS		512
269
270
271/*
272 * audio stuff
273 */
274#define AUDIO_TUNER		0x00	/* command for the audio routine */
275#define AUDIO_EXTERN		0x01	/* don't confuse them with bit */
276#define AUDIO_INTERN		0x02	/* settings */
277#define AUDIO_MUTE		0x80
278#define AUDIO_UNMUTE		0x81
279
280
281/*
282 * EEProm stuff
283 */
284struct eeProm {
285	short	offset;
286	short	count;
287	u_char	bytes[256];
288};
289
290
291/*
292 * XXX: this is a hack, should be in ioctl_meteor.h
293 * here to avoid touching that file for now...
294 */
295#define	TVTUNER_SETCHNL    _IOW('x', 32, unsigned int)	/* set channel */
296#define	TVTUNER_GETCHNL    _IOR('x', 32, unsigned int)	/* get channel */
297#define	TVTUNER_SETTYPE    _IOW('x', 33, unsigned int)	/* set tuner type */
298#define	TVTUNER_GETTYPE    _IOR('x', 33, unsigned int)	/* get tuner type */
299#define	TVTUNER_GETSTATUS  _IOR('x', 34, unsigned int)	/* get tuner status */
300#define	TVTUNER_SETFREQ    _IOW('x', 35, unsigned int)	/* set frequency */
301#define	TVTUNER_GETFREQ    _IOR('x', 36, unsigned int)	/* get frequency */
302
303
304#define BT848_SHUE	_IOW('x', 37, int)		/* set hue */
305#define BT848_GHUE	_IOR('x', 37, int)		/* get hue */
306#define	BT848_SBRIG	_IOW('x', 38, int)		/* set brightness */
307#define BT848_GBRIG	_IOR('x', 38, int)		/* get brightness */
308#define	BT848_SCSAT	_IOW('x', 39, int)		/* set chroma sat */
309#define BT848_GCSAT	_IOR('x', 39, int)		/* get UV saturation */
310#define	BT848_SCONT	_IOW('x', 40, int)		/* set contrast */
311#define	BT848_GCONT	_IOR('x', 40, int)		/* get contrast */
312#define	BT848_SVSAT	_IOW('x', 41, int)		/* set chroma V sat */
313#define BT848_GVSAT	_IOR('x', 41, int)		/* get V saturation */
314#define	BT848_SUSAT	_IOW('x', 42, int)		/* set chroma U sat */
315#define BT848_GUSAT	_IOR('x', 42, int)		/* get U saturation */
316
317#define	BT848_SCBARS	_IOR('x', 43, int)		/* set colorbar */
318#define	BT848_CCBARS	_IOR('x', 44, int)		/* clear colorbar */
319
320
321#define	BT848_SAUDIO	_IOW('x', 46, int)		/* set audio channel */
322#define BT848_GAUDIO	_IOR('x', 47, int)		/* get audio channel */
323#define	BT848_SBTSC	_IOW('x', 48, int)		/* set audio channel */
324
325#define	BT848_GSTATUS	_IOR('x', 49, unsigned int)	/* reap status */
326
327#define	BT848_WEEPROM	_IOWR('x', 50, struct eeProm)	/* write to EEProm */
328#define	BT848_REEPROM	_IOWR('x', 51, struct eeProm)	/* read from EEProm */
329
330#define	BT848_SIGNATURE	_IOWR('x', 52, struct eeProm)	/* read card sig */
331
332#define	TVTUNER_SETAFC	_IOW('x', 53, int)		/* turn AFC on/off */
333#define TVTUNER_GETAFC	_IOR('x', 54, int)		/* query AFC on/off */
334#define BT848_SLNOTCH	_IOW('x', 55, int)		/* set luma notch */
335#define BT848_GLNOTCH	_IOR('x', 56, int)		/* get luma notch */
336
337/* Read/Write the BT848's I2C bus directly
338 * b7-b0:    data (read/write)
339 * b15-b8:   internal peripheral register (write)
340 * b23-b16:  i2c addr (write)
341 * b31-b24:  1 = write, 0 = read
342 */
343#define BT848_I2CWR     _IOWR('x', 57, u_int)    /* i2c read-write */
344
345struct bktr_msp_control {
346	unsigned char function;
347	unsigned int  address;
348	unsigned int  data;
349};
350
351#define BT848_MSP_RESET _IO('x', 76)				/* MSP chip reset */
352#define BT848_MSP_READ  _IOWR('x', 77, struct bktr_msp_control)	/* MSP chip read */
353#define BT848_MSP_WRITE _IOWR('x', 78, struct bktr_msp_control)	/* MSP chip write */
354
355/* Support for radio tuner */
356#define RADIO_SETMODE	 _IOW('x', 58, unsigned int)  /* set radio modes */
357#define RADIO_GETMODE	 _IOR('x', 58, unsigned char)  /* get radio modes */
358#define   RADIO_AFC	 0x01		/* These modes will probably not */
359#define   RADIO_MONO	 0x02		/*  work on the FRxxxx. It does	 */
360#define   RADIO_MUTE	 0x08		/*  work on the FMxxxx.	*/
361#define RADIO_SETFREQ    _IOW('x', 59, unsigned int)  /* set frequency   */
362#define RADIO_GETFREQ    _IOR('x', 59, unsigned int)  /* set frequency   */
363 /*        Argument is frequency*100MHz  */
364
365/*
366 * XXX: more bad magic,
367 *      we need to fix the METEORGINPUT to return something public
368 *      duplicate them here for now...
369 */
370#define	METEOR_DEV0		0x00001000
371#define	METEOR_DEV1		0x00002000
372#define	METEOR_DEV2		0x00004000
373#define	METEOR_DEV3		0x00008000
374#define	METEOR_DEV_SVIDEO	0x00006000
375/*
376 * right now I don't know were to put these, but as they are suppose to be
377 * a part of a common video capture interface, these should be relocated to
378 * another place.  Probably most of the METEOR_xxx defines need to be
379 * renamed and moved to a common header
380 */
381
382typedef enum { METEOR_PIXTYPE_RGB, METEOR_PIXTYPE_YUV,
383	       METEOR_PIXTYPE_YUV_PACKED,
384	       METEOR_PIXTYPE_YUV_12 } METEOR_PIXTYPE;
385
386
387struct meteor_pixfmt {
388	u_int          index;         /* Index in supported pixfmt list     */
389	METEOR_PIXTYPE type;          /* What's the board gonna feed us     */
390	u_int          Bpp;           /* Bytes per pixel                    */
391	u_int          masks[3];      /* R,G,B or Y,U,V masks, respectively */
392	unsigned       swap_bytes :1; /* Bytes  swapped within shorts       */
393	unsigned       swap_shorts:1; /* Shorts swapped within longs        */
394};
395
396
397struct bktr_clip {
398    int          x_min;
399    int          x_max;
400    int          y_min;
401    int          y_max;
402};
403
404#define BT848_MAX_CLIP_NODE 100
405struct _bktr_clip {
406    struct bktr_clip x[BT848_MAX_CLIP_NODE];
407};
408
409/*
410 * I'm using METEOR_xxx just because that will be common to other interface
411 * and less of a surprise
412 */
413#define METEORSACTPIXFMT	_IOW('x', 64, int)
414#define METEORGACTPIXFMT	_IOR('x', 64, int)
415#define METEORGSUPPIXFMT	_IOWR('x', 65, struct meteor_pixfmt)
416
417/* set clip list */
418#define BT848SCLIP     _IOW('x', 66, struct _bktr_clip)
419#define BT848GCLIP     _IOR('x', 66, struct _bktr_clip)
420
421
422/* set input format */
423#define BT848SFMT		_IOW('x', 67, unsigned int)
424#define BT848GFMT		_IOR('x', 67, unsigned int)
425
426/* set clear-buffer-on-start */
427#define BT848SCBUF	_IOW('x', 68, int)
428#define BT848GCBUF	_IOR('x', 68, int)
429
430/* set capture area */
431/* The capture area is the area of the video image which is grabbed */
432/* Usually the capture area is 640x480 (768x576 PAL) pixels */
433/* This area is then scaled to the dimensions the user requires */
434/* using the METEORGEO ioctl */
435/* However, the capture area could be 400x300 pixels from the top right */
436/* corner of the video image */
437struct bktr_capture_area {
438   int      x_offset;
439   int      y_offset;
440   int      x_size;
441   int      y_size;
442};
443#define BT848_SCAPAREA   _IOW('x', 69, struct bktr_capture_area)
444#define BT848_GCAPAREA   _IOR('x', 69, struct bktr_capture_area)
445
446
447/* Get channel Set */
448#define BT848_MAX_CHNLSET_NAME_LEN 16
449struct bktr_chnlset {
450       short   index;
451       short   max_channel;
452       char    name[BT848_MAX_CHNLSET_NAME_LEN];
453};
454#define	TVTUNER_GETCHNLSET _IOWR('x', 70, struct bktr_chnlset)
455
456
457
458/* Infra Red Remote Control */
459struct bktr_remote {
460       unsigned char data[3];
461};
462#define	REMOTE_GETKEY      _IOR('x', 71, struct bktr_remote)/*read the remote */
463                                                            /*control receiver*/
464                                                            /*returns raw data*/
465
466
467/*
468 * Direct access to GPIO pins. You must add BKTR_GPIO_ACCESS to your kernel
469 * configuration file to use these
470 */
471#define BT848_GPIO_SET_EN      _IOW('x', 72, int)      /* set gpio_out_en */
472#define BT848_GPIO_GET_EN      _IOR('x', 73, int)      /* get gpio_out_en */
473#define BT848_GPIO_SET_DATA    _IOW('x', 74, int)      /* set gpio_data */
474#define BT848_GPIO_GET_DATA    _IOR('x', 75, int)      /* get gpio_data */
475
476
477
478/*  XXX - Copied from /sys/pci/brktree_reg.h  */
479#define BT848_IFORM_FORMAT              (0x7<<0)
480# define BT848_IFORM_F_RSVD             (0x7)
481# define BT848_IFORM_F_SECAM            (0x6)
482# define BT848_IFORM_F_PALN             (0x5)
483# define BT848_IFORM_F_PALM             (0x4)
484# define BT848_IFORM_F_PALBDGHI         (0x3)
485# define BT848_IFORM_F_NTSCJ            (0x2)
486# define BT848_IFORM_F_NTSCM            (0x1)
487# define BT848_IFORM_F_AUTO             (0x0)
488
489
490
491#endif /* _DEV_IC_BT8XX_H_ */