11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Zoran ZR36016 basic configuration functions - header file
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 2001 Wolfgang Scherr <scherr@net4you.at>
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * $Id: zr36016.h,v 1.1.2.3 2003/01/14 21:18:07 rbultje Exp $
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * ------------------------------------------------------------------------
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * This program is free software; you can redistribute it and/or modify
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * it under the terms of the GNU General Public License as published by
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * the Free Software Foundation; either version 2 of the License, or
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * (at your option) any later version.
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * This program is distributed in the hope that it will be useful,
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * but WITHOUT ANY WARRANTY; without even the implied warranty of
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * GNU General Public License for more details.
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * You should have received a copy of the GNU General Public License
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * along with this program; if not, write to the Free Software
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * ------------------------------------------------------------------------
251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef ZR36016_H
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR36016_H
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* data stored for each zoran jpeg codec chip */
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct zr36016 {
321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	char name[32];
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int num;
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	/* io datastructure */
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct videocodec *codec;
361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	// coder status
371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__u8 version;
381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	// actual coder setup
391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int mode;
401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__u16 xoff;
421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__u16 yoff;
431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__u16 width;
441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__u16 height;
451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__u16 xdec;
461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__u16 ydec;
471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* direct  register addresses */
501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_GOSTOP      0x00
511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_MODE        0x01
521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_IADDR       0x02
531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_IDATA       0x03
541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* indirect  register addresses */
561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016I_SETUP1     0x00
571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016I_SETUP2     0x01
581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016I_NAX_LO     0x02
591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016I_NAX_HI     0x03
601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016I_PAX_LO     0x04
611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016I_PAX_HI     0x05
621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016I_NAY_LO     0x06
631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016I_NAY_HI     0x07
641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016I_PAY_LO     0x08
651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016I_PAY_HI     0x09
661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016I_NOL_LO     0x0a
671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016I_NOL_HI     0x0b
681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* possible values for mode register */
701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_RGB444_YUV444  0x00
711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_RGB444_YUV422  0x01
721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_RGB444_YUV411  0x02
731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_RGB444_Y400    0x03
741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_RGB444_RGB444  0x04
751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YUV444_YUV444  0x08
761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YUV444_YUV422  0x09
771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YUV444_YUV411  0x0a
781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YUV444_Y400    0x0b
791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YUV444_RGB444  0x0c
801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YUV422_YUV422  0x11
811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YUV422_YUV411  0x12
821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YUV422_Y400    0x13
831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YUV411_YUV411  0x16
841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YUV411_Y400    0x17
851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_4444_4444      0x19
861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_100_100        0x1b
871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_RGB444         0x00
891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YUV444         0x20
901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YUV422         0x40
911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_COMPRESSION    0x80
931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_EXPANSION      0x80
941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* possible values for setup 1 register */
961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_CKRT           0x80
971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_VERT           0x40
981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_HORZ           0x20
991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_HRFL           0x10
1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_DSFL           0x08
1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_SBFL           0x04
1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_RSTR           0x02
1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_CNTI           0x01
1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* possible values for setup 2 register */
1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_SYEN           0x40
1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_CCIR           0x04
1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_SIGN           0x02
1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ZR016_YMCS           0x01
1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif				/*fndef ZR36016_H */
112