137535Sdes/* SPDX-License-Identifier: GPL-2.0-or-later */ 237535Sdes/* 337535Sdes * Zoran ZR36016 basic configuration functions - header file 437535Sdes * 537535Sdes * Copyright (C) 2001 Wolfgang Scherr <scherr@net4you.at> 637535Sdes */ 737535Sdes 837535Sdes#ifndef ZR36016_H 937535Sdes#define ZR36016_H 1037535Sdes 1137535Sdes/* data stored for each zoran jpeg codec chip */ 1237535Sdesstruct zr36016 { 1337535Sdes char name[32]; 1437535Sdes int num; 1537535Sdes /* io datastructure */ 1637535Sdes struct videocodec *codec; 1737535Sdes // coder status 1837535Sdes __u8 version; 1937535Sdes // actual coder setup 2037535Sdes int mode; 2137535Sdes 2237535Sdes __u16 xoff; 2337535Sdes __u16 yoff; 2437535Sdes __u16 width; 2537535Sdes __u16 height; 2637535Sdes __u16 xdec; 2737535Sdes __u16 ydec; 2837535Sdes}; 2984203Sdillon 3084203Sdillon/* direct register addresses */ 3184203Sdillon#define ZR016_GOSTOP 0x00 3241862Sdes#define ZR016_MODE 0x01 3340975Sdes#define ZR016_IADDR 0x02 3441989Sdes#define ZR016_IDATA 0x03 3541989Sdes 3637535Sdes/* indirect register addresses */ 3737535Sdes#define ZR016I_SETUP1 0x00 3837535Sdes#define ZR016I_SETUP2 0x01 3937535Sdes#define ZR016I_NAX_LO 0x02 4040975Sdes#define ZR016I_NAX_HI 0x03 4137535Sdes#define ZR016I_PAX_LO 0x04 4237535Sdes#define ZR016I_PAX_HI 0x05 4375891Sarchie#define ZR016I_NAY_LO 0x06 4437535Sdes#define ZR016I_NAY_HI 0x07 4590267Sdes#define ZR016I_PAY_LO 0x08 4660187Sdes#define ZR016I_PAY_HI 0x09 4790267Sdes#define ZR016I_NOL_LO 0x0a 4890267Sdes#define ZR016I_NOL_HI 0x0b 4990267Sdes 5090267Sdes/* possible values for mode register */ 5190267Sdes#define ZR016_RGB444_YUV444 0x00 5290267Sdes#define ZR016_RGB444_YUV422 0x01 5390267Sdes#define ZR016_RGB444_YUV411 0x02 5490267Sdes#define ZR016_RGB444_Y400 0x03 5590267Sdes#define ZR016_RGB444_RGB444 0x04 5690267Sdes#define ZR016_YUV444_YUV444 0x08 5790267Sdes#define ZR016_YUV444_YUV422 0x09 5890267Sdes#define ZR016_YUV444_YUV411 0x0a 5990267Sdes#define ZR016_YUV444_Y400 0x0b 6090267Sdes#define ZR016_YUV444_RGB444 0x0c 6137535Sdes#define ZR016_YUV422_YUV422 0x11 6237535Sdes#define ZR016_YUV422_YUV411 0x12 6337535Sdes#define ZR016_YUV422_Y400 0x13 6475891Sarchie#define ZR016_YUV411_YUV411 0x16 6563340Sdes#define ZR016_YUV411_Y400 0x17 6690267Sdes#define ZR016_4444_4444 0x19 6763340Sdes#define ZR016_100_100 0x1b 6863340Sdes 6963340Sdes#define ZR016_RGB444 0x00 7075891Sarchie#define ZR016_YUV444 0x20 7137535Sdes#define ZR016_YUV422 0x40 7290267Sdes 7390267Sdes#define ZR016_COMPRESSION 0x80 7490267Sdes#define ZR016_EXPANSION 0x80 7590267Sdes 7690267Sdes/* possible values for setup 1 register */ 7790267Sdes#define ZR016_CKRT 0x80 7890267Sdes#define ZR016_VERT 0x40 7990267Sdes#define ZR016_HORZ 0x20 8090267Sdes#define ZR016_HRFL 0x10 8190267Sdes#define ZR016_DSFL 0x08 8290267Sdes#define ZR016_SBFL 0x04 8390267Sdes#define ZR016_RSTR 0x02 8490267Sdes#define ZR016_CNTI 0x01 8590267Sdes 8690267Sdes/* possible values for setup 2 register */ 8790267Sdes#define ZR016_SYEN 0x40 8837535Sdes#define ZR016_CCIR 0x04 8940975Sdes#define ZR016_SIGN 0x02 9041989Sdes#define ZR016_YMCS 0x01 9175891Sarchie 9240975Sdesint zr36016_init_module(void); 9390267Sdesvoid zr36016_cleanup_module(void); 9440975Sdes#endif /*fndef ZR36016_H */ 9590267Sdes