Merge branch 'upstream'
[sfrench/cifs-2.6.git] / drivers / media / video / saa7196.h
1 /*
2     Definitions for the Philips SAA7196 digital video decoder,
3     scaler, and clock generator circuit (DESCpro), as used in
4     the PlanB video input of the Powermac 7x00/8x00 series.
5
6     Copyright (C) 1998 Michel Lanners (mlan@cpu.lu)
7
8     The register defines are shamelessly copied from the meteor
9     driver out of NetBSD (with permission),
10     and are copyrighted (c) 1995 Mark Tinguely and Jim Lowe
11     (Thanks !)
12
13     Additional debugging and coding by Takashi Oe (toe@unlinfo.unl.edu)
14
15     The default values used for PlanB are my mistakes.
16 */
17
18 /* $Id: saa7196.h,v 1.5 1999/03/26 23:28:47 mlan Exp $ */
19
20 #ifndef _SAA7196_H_
21 #define _SAA7196_H_
22
23 #define SAA7196_NUMREGS 0x31    /* Number of registers (used)*/
24 #define NUM_SUPPORTED_NORM 3    /* Number of supported norms by PlanB */
25
26 /* Decoder part: */
27 #define SAA7196_IDEL    0x00    /* Increment delay */
28 #define SAA7196_HSB5    0x01    /* H-sync begin; 50 hz */
29 #define SAA7196_HSS5    0x02    /* H-sync stop; 50 hz */
30 #define SAA7196_HCB5    0x03    /* H-clamp begin; 50 hz */
31 #define SAA7196_HCS5    0x04    /* H-clamp stop; 50 hz */
32 #define SAA7196_HSP5    0x05    /* H-sync after PHI1; 50 hz */
33 #define SAA7196_LUMC    0x06    /* Luminance control */
34 #define SAA7196_HUEC    0x07    /* Hue control */
35 #define SAA7196_CKTQ    0x08    /* Colour Killer Threshold QAM (PAL, NTSC) */
36 #define SAA7196_CKTS    0x09    /* Colour Killer Threshold SECAM */
37 #define SAA7196_PALS    0x0a    /* PAL switch sensitivity */
38 #define SAA7196_SECAMS  0x0b    /* SECAM switch sensitivity */
39 #define SAA7196_CGAINC  0x0c    /* Chroma gain control */
40 #define SAA7196_STDC    0x0d    /* Standard/Mode control */
41 #define SAA7196_IOCC    0x0e    /* I/O and Clock Control */
42 #define SAA7196_CTRL1   0x0f    /* Control #1 */
43 #define SAA7196_CTRL2   0x10    /* Control #2 */
44 #define SAA7196_CGAINR  0x11    /* Chroma Gain Reference */
45 #define SAA7196_CSAT    0x12    /* Chroma Saturation */
46 #define SAA7196_CONT    0x13    /* Luminance Contrast */
47 #define SAA7196_HSB6    0x14    /* H-sync begin; 60 hz */
48 #define SAA7196_HSS6    0x15    /* H-sync stop; 60 hz */
49 #define SAA7196_HCB6    0x16    /* H-clamp begin; 60 hz */
50 #define SAA7196_HCS6    0x17    /* H-clamp stop; 60 hz */
51 #define SAA7196_HSP6    0x18    /* H-sync after PHI1; 60 hz */
52 #define SAA7196_BRIG    0x19    /* Luminance Brightness */
53
54 /* Scaler part: */
55 #define SAA7196_FMTS    0x20    /* Formats and sequence */
56 #define SAA7196_OUTPIX  0x21    /* Output data pixel/line */
57 #define SAA7196_INPIX   0x22    /* Input data pixel/line */
58 #define SAA7196_HWS     0x23    /* Horiz. window start */
59 #define SAA7196_HFILT   0x24    /* Horiz. filter */
60 #define SAA7196_OUTLINE 0x25    /* Output data lines/field */
61 #define SAA7196_INLINE  0x26    /* Input data lines/field */
62 #define SAA7196_VWS     0x27    /* Vertical window start */
63 #define SAA7196_VYP     0x28    /* AFS/vertical Y processing */
64 #define SAA7196_VBS     0x29    /* Vertical Bypass start */
65 #define SAA7196_VBCNT   0x2a    /* Vertical Bypass count */
66 #define SAA7196_VBP     0x2b    /* veritcal Bypass Polarity */
67 #define SAA7196_VLOW    0x2c    /* Colour-keying lower V limit */
68 #define SAA7196_VHIGH   0x2d    /* Colour-keying upper V limit */
69 #define SAA7196_ULOW    0x2e    /* Colour-keying lower U limit */
70 #define SAA7196_UHIGH   0x2f    /* Colour-keying upper U limit */
71 #define SAA7196_DPATH   0x30    /* Data path setting  */
72
73 /* Initialization default values: */
74
75 unsigned char saa_regs[NUM_SUPPORTED_NORM][SAA7196_NUMREGS] = {
76
77 /* PAL, 768x576 (no scaling), composite video-in */
78 /* Decoder: */
79       { 0x50, 0x30, 0x00, 0xe8, 0xb6, 0xe5, 0x63, 0xff,
80         0xfe, 0xf0, 0xfe, 0xe0, 0x20, 0x06, 0x3b, 0x98,
81         0x00, 0x59, 0x41, 0x45, 0x34, 0x0a, 0xf4, 0xd2,
82         0xe9, 0xa2,
83 /* Padding */
84                     0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
85 /* Scaler: */
86         0x72, 0x80, 0x00, 0x03, 0x8d, 0x20, 0x20, 0x12,
87         0xa5, 0x12, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00,
88         0x87 },
89
90 /* NTSC, 640x480? (no scaling), composite video-in */
91 /* Decoder: */
92       { 0x50, 0x30, 0x00, 0xe8, 0xb6, 0xe5, 0x50, 0x00,
93         0xf8, 0xf0, 0xfe, 0xe0, 0x00, 0x06, 0x3b, 0x98,
94         0x00, 0x2c, 0x3d, 0x40, 0x34, 0x0a, 0xf4, 0xd2,
95         0xe9, 0x98,
96 /* Padding */
97                     0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
98 /* Scaler: */
99         0x72, 0x80, 0x80, 0x03, 0x89, 0xf0, 0xf0, 0x0d,
100         0xa0, 0x0d, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00,
101         0x87 },
102
103 /* SECAM, 768x576 (no scaling), composite video-in */
104 /* Decoder: */
105       { 0x50, 0x30, 0x00, 0xe8, 0xb6, 0xe5, 0x63, 0xff,
106         0xfe, 0xf0, 0xfe, 0xe0, 0x20, 0x07, 0x3b, 0x98,
107         0x00, 0x59, 0x41, 0x45, 0x34, 0x0a, 0xf4, 0xd2,
108         0xe9, 0xa2,
109 /* Padding */
110                     0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
111 /* Scaler: */
112         0x72, 0x80, 0x00, 0x03, 0x8d, 0x20, 0x20, 0x12,
113         0xa5, 0x12, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00,
114         0x87 }
115         };
116
117 #endif /* _SAA7196_H_ */