⛏️ index : haiku.git

/*
 * This file is a part of BeOS USBVision driver project.
 * Copyright (c) 2003 by Siarzuk Zharski <imker@gmx.li>
 *
 * This file may be used under the terms of the BSD License
 * Look into the file "License" for details.
 *
 * Skeletal part of this code was inherired from original BeOS sample code,
 * that is distributed under the terms of the Be Sample Code License.
 * Look into the file "Be License" for details.
 *
 * $Source: /cvsroot/sis4be/usbvision/include/nt100x.h,v $
 * $Author: zharik $
 * $Revision: 1.1 $
 * $Date: 2003/07/15 18:58:05 $
 *
 */

#ifndef _NT100X_H_
#define _NT100X_H_

#define READ_CMD_PREFIX 0x33C2
#define WRITE_CMD_PREFIX 0x3342

#define COMMAND_DATA_LENGTH 0x08
typedef struct{
  uint8  reg;
  uint8  data_length;
  uint8  data[COMMAND_DATA_LENGTH];
}xet_nt100x_reg;

#define NT_IOCTL_READ_REGISTER  B_DEVICE_OP_CODES_END + 1
#define NT_IOCTL_WRITE_REGISTER B_DEVICE_OP_CODES_END + 2

/*General Control Registers (Power, Restart EP, USB, IOΒ­pins, Camera Control)*/
#define PWR_REG         0x00 /*0*/
#define CONFIG_REG      0x01 /*1*/
#define ADRS_REG        0x02 /*2*/
#define ALTER_REG       0x03 /*3*/
#define FORCE_ALTER_REG 0x04 /*4*/
#define STATUS_REG      0x05 /*5*/
#define IOPIN_REG       0x06 /*6*/
#define SER_MODE        0x07 /*7*/
#define SER_ADRS        0x08 /*8*/
#define SER_CONT        0x09 /*9*/
#define SER_DAT1        0x0a /*10*/
#define SER_DAT2        0x0b /*11*/
#define SER_DAT3        0x0c /*12*/
#define SER_DAT4        0x0d /*13*/

/*EEPROM Read/Write Registers*/
#define EE_DATA  0x0e /*14*/
#define EE_LSBAD 0x0f /*15*/
#define EE_CONT  0x10 /*16*/

/*17: 0x11*/

/*DRAM and Memory Buffers Setup Registers*/
#define DRM_CONT 0x12 /*18*/
#define DRM_PRM1 0x13 /*19*/
#define DRM_PRM2 0x14 /*20*/
#define DRM_PRM3 0x15 /*21*/
#define DRM_PRM4 0x16 /*22*/
#define DRM_PRM5 0x17 /*23*/
#define DRM_PRM6 0x18 /*24*/
#define DRM_PRM7 0x19 /*25*/
#define DRM_PRM8 0x1a /*26*/

/*Video Setup and Control Registers*/
#define VIN_REG1    0x1b /*27*/
#define VIN_REG2    0x1c /*28*/
#define LXSIZE_IN   0x1d /*29*/
#define MXSIZE_IN   0x1e /*30*/
#define LYSIZE_IN   0x1f /*31*/
#define MYSIZE_IN   0x20 /*32*/
#define LX_OFFST    0x21 /*33*/
#define MX_OFFST    0x22 /*34*/
#define LY_OFFST    0x23 /*35*/
#define MY_OFFST    0x24 /*36*/
#define FRM_RATE    0x25 /*37*/
#define LXSIZE_O    0x26 /*38*/
#define MXSIZE_O    0x27 /*39*/
#define LYSIZE_O    0x28 /*40*/
#define MYSIZE_O    0x29 /*41*/
#define FILT_CONT   0x2a /*42*/
#define VO_MODE     0x2b /*43*/
#define INTRA_CYC   0x2c /*44*/
#define STRIP_SZ    0x2d /*45*/
#define FORCE_INTRA 0x2e /*46*/
#define FORCE_UP    0x2f /*47*/
#define BUF_THR     0x30 /*48*/
#define DVI_YUV     0x31 /*49*/
#define AUDIO_CONT  0x32 /*50*/
#define AUD_PK_LEN  0x33 /*51*/
#define BLK_PK_LEN  0x34 /*52*/

/*USB WatchDog Register*/
#define WD_COUNT 0x35 /*53*/

/*54 0x36*/
/*55 0x37*/

/*Compression Ratio Management Registers*/
#define PCM_THR1   0x38 /*56*/
#define PCM_THR2   0x39 /*57*/
#define DIST_THR_I 0x3a /*58*/
#define DIST_THR_A 0x3b /*59*/
#define MAX_DIST_I 0x3c /*60*/
#define MAX_DIST_A 0x3d /*61*/
#define VID_BUF_   0x3e /*62*/
#define LFP_LSB    0x3f /*63*/
#define LFP_MSB    0x40 /*64*/
#define VID_LPF    0x41 /*65*/

#endif //_NT100X_H_