162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Zoran ZR36016 basic configuration functions - header file
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2001 Wolfgang Scherr <scherr@net4you.at>
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#ifndef ZR36016_H
962306a36Sopenharmony_ci#define ZR36016_H
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci/* data stored for each zoran jpeg codec chip */
1262306a36Sopenharmony_cistruct zr36016 {
1362306a36Sopenharmony_ci	char name[32];
1462306a36Sopenharmony_ci	int num;
1562306a36Sopenharmony_ci	/* io datastructure */
1662306a36Sopenharmony_ci	struct videocodec *codec;
1762306a36Sopenharmony_ci	// coder status
1862306a36Sopenharmony_ci	__u8 version;
1962306a36Sopenharmony_ci	// actual coder setup
2062306a36Sopenharmony_ci	int mode;
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci	__u16 xoff;
2362306a36Sopenharmony_ci	__u16 yoff;
2462306a36Sopenharmony_ci	__u16 width;
2562306a36Sopenharmony_ci	__u16 height;
2662306a36Sopenharmony_ci	__u16 xdec;
2762306a36Sopenharmony_ci	__u16 ydec;
2862306a36Sopenharmony_ci};
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci/* direct  register addresses */
3162306a36Sopenharmony_ci#define ZR016_GOSTOP      0x00
3262306a36Sopenharmony_ci#define ZR016_MODE        0x01
3362306a36Sopenharmony_ci#define ZR016_IADDR       0x02
3462306a36Sopenharmony_ci#define ZR016_IDATA       0x03
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci/* indirect  register addresses */
3762306a36Sopenharmony_ci#define ZR016I_SETUP1     0x00
3862306a36Sopenharmony_ci#define ZR016I_SETUP2     0x01
3962306a36Sopenharmony_ci#define ZR016I_NAX_LO     0x02
4062306a36Sopenharmony_ci#define ZR016I_NAX_HI     0x03
4162306a36Sopenharmony_ci#define ZR016I_PAX_LO     0x04
4262306a36Sopenharmony_ci#define ZR016I_PAX_HI     0x05
4362306a36Sopenharmony_ci#define ZR016I_NAY_LO     0x06
4462306a36Sopenharmony_ci#define ZR016I_NAY_HI     0x07
4562306a36Sopenharmony_ci#define ZR016I_PAY_LO     0x08
4662306a36Sopenharmony_ci#define ZR016I_PAY_HI     0x09
4762306a36Sopenharmony_ci#define ZR016I_NOL_LO     0x0a
4862306a36Sopenharmony_ci#define ZR016I_NOL_HI     0x0b
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci/* possible values for mode register */
5162306a36Sopenharmony_ci#define ZR016_RGB444_YUV444  0x00
5262306a36Sopenharmony_ci#define ZR016_RGB444_YUV422  0x01
5362306a36Sopenharmony_ci#define ZR016_RGB444_YUV411  0x02
5462306a36Sopenharmony_ci#define ZR016_RGB444_Y400    0x03
5562306a36Sopenharmony_ci#define ZR016_RGB444_RGB444  0x04
5662306a36Sopenharmony_ci#define ZR016_YUV444_YUV444  0x08
5762306a36Sopenharmony_ci#define ZR016_YUV444_YUV422  0x09
5862306a36Sopenharmony_ci#define ZR016_YUV444_YUV411  0x0a
5962306a36Sopenharmony_ci#define ZR016_YUV444_Y400    0x0b
6062306a36Sopenharmony_ci#define ZR016_YUV444_RGB444  0x0c
6162306a36Sopenharmony_ci#define ZR016_YUV422_YUV422  0x11
6262306a36Sopenharmony_ci#define ZR016_YUV422_YUV411  0x12
6362306a36Sopenharmony_ci#define ZR016_YUV422_Y400    0x13
6462306a36Sopenharmony_ci#define ZR016_YUV411_YUV411  0x16
6562306a36Sopenharmony_ci#define ZR016_YUV411_Y400    0x17
6662306a36Sopenharmony_ci#define ZR016_4444_4444      0x19
6762306a36Sopenharmony_ci#define ZR016_100_100        0x1b
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci#define ZR016_RGB444         0x00
7062306a36Sopenharmony_ci#define ZR016_YUV444         0x20
7162306a36Sopenharmony_ci#define ZR016_YUV422         0x40
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci#define ZR016_COMPRESSION    0x80
7462306a36Sopenharmony_ci#define ZR016_EXPANSION      0x80
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci/* possible values for setup 1 register */
7762306a36Sopenharmony_ci#define ZR016_CKRT           0x80
7862306a36Sopenharmony_ci#define ZR016_VERT           0x40
7962306a36Sopenharmony_ci#define ZR016_HORZ           0x20
8062306a36Sopenharmony_ci#define ZR016_HRFL           0x10
8162306a36Sopenharmony_ci#define ZR016_DSFL           0x08
8262306a36Sopenharmony_ci#define ZR016_SBFL           0x04
8362306a36Sopenharmony_ci#define ZR016_RSTR           0x02
8462306a36Sopenharmony_ci#define ZR016_CNTI           0x01
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci/* possible values for setup 2 register */
8762306a36Sopenharmony_ci#define ZR016_SYEN           0x40
8862306a36Sopenharmony_ci#define ZR016_CCIR           0x04
8962306a36Sopenharmony_ci#define ZR016_SIGN           0x02
9062306a36Sopenharmony_ci#define ZR016_YMCS           0x01
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ciint zr36016_init_module(void);
9362306a36Sopenharmony_civoid zr36016_cleanup_module(void);
9462306a36Sopenharmony_ci#endif				/*fndef ZR36016_H */
95