mirror of
https://gitee.com/Vancouver2017/luban-lite.git
synced 2025-12-26 05:58:54 +00:00
V1.0.6
This commit is contained in:
242
bsp/peripheral/camera/tp2825b/tp2825b.h
Normal file
242
bsp/peripheral/camera/tp2825b/tp2825b.h
Normal file
@@ -0,0 +1,242 @@
|
||||
/*
|
||||
* Copyright (c) 2024, ArtInChip Technology Co., Ltd
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __TP2825B_H__
|
||||
#define __TP2825B_H__
|
||||
|
||||
#include "aic_common.h"
|
||||
|
||||
#define TP2825_VERSION_CODE 0x000008
|
||||
|
||||
enum {
|
||||
TP2825B = 0x2825,
|
||||
TP2850 = 0x2850,
|
||||
TP2860 = 0x2860,
|
||||
};
|
||||
enum {
|
||||
TP2802_1080P25 = 0x03,
|
||||
TP2802_1080P30 = 0x02,
|
||||
TP2802_720P25 = 0x05,
|
||||
TP2802_720P30 = 0x04,
|
||||
TP2802_720P50 = 0x01,
|
||||
TP2802_720P60 = 0x00,
|
||||
TP2802_SD = 0x06,
|
||||
INVALID_FORMAT = 0x07,
|
||||
TP2802_720P25V2 = 0x0D,
|
||||
TP2802_720P30V2 = 0x0C,
|
||||
TP2802_PAL = 0x08,
|
||||
TP2802_NTSC = 0x09,
|
||||
TP2802_3M18 = 0x20, //2048x1536@18.75 for TVI
|
||||
TP2802_5M12 = 0x21, //2592x1944@12.5 for TVI
|
||||
TP2802_4M15 = 0x22, //2688x1520@15 for TVI
|
||||
TP2802_3M20 = 0x23, //2048x1536@20 for TVI
|
||||
TP2802_4M12 = 0x24, //2688x1520@12.5 for TVI
|
||||
TP2802_6M10 = 0x25, //3200x1800@10 for TVI
|
||||
TP2802_QHD30 = 0x26, //2560x1440@30 for TVI/HDA/HDC
|
||||
TP2802_QHD25 = 0x27, //2560x1440@25 for TVI/HDA/HDC
|
||||
TP2802_QHD15 = 0x28, //2560x1440@15 for HDA
|
||||
TP2802_QXGA18 = 0x29, //2048x1536@18 for HDA/TVI
|
||||
TP2802_QXGA30 = 0x2A, //2048x1536@30 for HDA
|
||||
TP2802_QXGA25 = 0x2B, //2048x1536@25 for HDA
|
||||
TP2802_4M30 = 0x2C, //2688x1520@30 for TVI(for future)
|
||||
TP2802_4M25 = 0x2D, //2688x1520@25 for TVI(for future)
|
||||
TP2802_5M20 = 0x2E, //2592x1944@20 for TVI/HDA
|
||||
TP2802_8M15 = 0x2f, //3840x2160@15 for TVI
|
||||
TP2802_8M12 = 0x30, //3840x2160@12.5 for TVI
|
||||
TP2802_1080P15 = 0x31, //1920x1080@15 for TVI
|
||||
TP2802_1080P60 = 0x32, //1920x1080@60 for TVI
|
||||
TP2802_960P30 = 0x33, //1280x960@30 for TVI
|
||||
TP2802_1080P20 = 0x34, //1920x1080@20 for TVI
|
||||
TP2802_1080P50 = 0x35, //1920x1080@50 for TVI
|
||||
TP2802_720P14 = 0x36, //1280x720@14 for TVI
|
||||
TP2802_720P30HDR = 0x37, //1280x720@30 for TVI
|
||||
TP2802_6M20 = 0x38, //2960x1920@20 for CVI
|
||||
TP2802_8M15V2 = 0x39, //3264x2448@15 for TVI
|
||||
TP2802_5M20V2 = 0x3a, //2960x1664@20 for TVI
|
||||
TP2802_8M7 = 0x3b, //3720x2160@7.5 for AHD
|
||||
TP2802_3M20V2 = 0x3c, //2304x1296@20 for TVI
|
||||
TP2802_1080P2750 = 0x3d, //1920x1080@27.5 for TVI
|
||||
TP2802_1080P2700 = 0x3e, //1920x1080@27.5 for TVI
|
||||
TP2802_1080P12 = 0x41, //1920x1080@12.5
|
||||
TP2802_5M12V2 = 0x42, //2960x1664@12.5 for TVI
|
||||
TP2802_960P25 = 0x43, //1280x960@25 for AHD
|
||||
};
|
||||
enum {
|
||||
VIDEO_UNPLUG,
|
||||
VIDEO_IN,
|
||||
VIDEO_LOCKED,
|
||||
VIDEO_UNLOCK
|
||||
};
|
||||
enum {
|
||||
MUX656_8BIT, //Y/C-mux 4:2:2 8-bit with embedded sync
|
||||
SEP656_8BIT, //Y/C-mux 4:2:2 8-bit with separate sync
|
||||
EMB422_16BIT, //only TP2825B YCbCr 4:2:2 16-bit with embedded sync
|
||||
SEP422_16BIT, //only TP2825B YCbCr 4:2:2 16-bit with separate sync
|
||||
MIPI_2LANES, //only TP2850/TP2860
|
||||
MIPI_1LANES, //only TP2860
|
||||
};
|
||||
enum {
|
||||
VIDEO_PAGE = 0, //
|
||||
MIPI_PAGE = 8
|
||||
};
|
||||
enum {
|
||||
SCAN_DISABLE = 0,
|
||||
SCAN_AUTO,
|
||||
SCAN_TVI,
|
||||
SCAN_HDA,
|
||||
SCAN_HDC,
|
||||
SCAN_MANUAL,
|
||||
SCAN_TEST
|
||||
};
|
||||
enum {
|
||||
STD_TVI,
|
||||
STD_HDA,
|
||||
STD_HDC,
|
||||
STD_HDA_DEFAULT,
|
||||
STD_HDC_DEFAULT
|
||||
};
|
||||
enum {
|
||||
PTZ_TVI = 0,
|
||||
PTZ_HDA_1080P = 1,
|
||||
PTZ_HDA_720P = 2,
|
||||
PTZ_HDA_CVBS = 3,
|
||||
PTZ_HDC = 4,
|
||||
PTZ_HDA_3M18 = 5, //HDA QXGA18
|
||||
PTZ_HDA_3M25 = 6, //HDA QXGA25,QXGA30
|
||||
PTZ_HDA_4M25 = 7, //HDA QHD25,QHD30,5M20
|
||||
PTZ_HDA_4M15 = 8, //HDA QHD15,5M12.5
|
||||
PTZ_HDC_QHD = 9, //HDC QHD25,QHD30
|
||||
PTZ_HDC_FIFO = 10, //HDC 1080p,720p FIFO
|
||||
PTZ_HDC_8M12 = 11, //HDC 8M12.5
|
||||
PTZ_HDC_8M15 = 12, //HDC 8M15
|
||||
PTZ_HDC_6M20 = 13 //HDC 6M20
|
||||
};
|
||||
enum {
|
||||
PTZ_RX_TVI_CMD,
|
||||
PTZ_RX_TVI_BURST,
|
||||
PTZ_RX_ACP1,
|
||||
PTZ_RX_ACP2,
|
||||
PTZ_RX_ACP3,
|
||||
PTZ_RX_TEST,
|
||||
PTZ_RX_HDC1,
|
||||
PTZ_RX_HDC2
|
||||
};
|
||||
enum {
|
||||
PTZ_PIN_TXD = 0, //only for TP2825B
|
||||
PTZ_PIN_PTZ1 = 1,
|
||||
PTZ_PIN_PTZ2 = 2,
|
||||
};
|
||||
enum {
|
||||
SINGLE_VIN1 = 0,
|
||||
SINGLE_VIN2 = 1,
|
||||
SINGLE_VIN3 = 2,
|
||||
SINGLE_VIN4 = 3,
|
||||
SINGLE_VIN5 = 4, //only for TP2825B
|
||||
DIFF_VIN12 = 6,
|
||||
DIFF_VIN34 = 7
|
||||
};
|
||||
|
||||
#define FLAG_LOSS 0x80
|
||||
#define FLAG_H_LOCKED 0x20
|
||||
#define FLAG_HV_LOCKED 0x60
|
||||
|
||||
#define FLAG_HDC_MODE 0x80
|
||||
#define FLAG_HALF_MODE 0x40
|
||||
#define FLAG_MEGA_MODE 0x20
|
||||
#define FLAG_HDA_MODE 0x10
|
||||
|
||||
#define CHANNELS_PER_CHIP 4
|
||||
#define MAX_CHIPS 2
|
||||
#define SUCCESS 0
|
||||
#define FAILURE -1
|
||||
|
||||
#define BRIGHTNESS 0x10
|
||||
#define CONTRAST 0x11
|
||||
#define SATURATION 0x12
|
||||
#define HUE 0x13
|
||||
#define SHARPNESS 0x14
|
||||
|
||||
#define MAX_COUNT 0xffff
|
||||
|
||||
typedef struct _tp2802_register
|
||||
{
|
||||
unsigned char chip;
|
||||
unsigned char ch;
|
||||
unsigned int reg_addr;
|
||||
unsigned int value;
|
||||
} tp2802_register;
|
||||
|
||||
typedef struct _tp2802_work_mode
|
||||
{
|
||||
unsigned char chip;
|
||||
unsigned char ch;
|
||||
unsigned char mode;
|
||||
} tp2802_work_mode;
|
||||
|
||||
typedef struct _tp2802_video_mode
|
||||
{
|
||||
unsigned char chip;
|
||||
unsigned char ch;
|
||||
unsigned char mode;
|
||||
unsigned char std;
|
||||
} tp2802_video_mode;
|
||||
|
||||
typedef struct _tp2802_video_loss
|
||||
{
|
||||
unsigned char chip;
|
||||
unsigned char ch;
|
||||
unsigned char is_lost;
|
||||
} tp2802_video_loss;
|
||||
|
||||
typedef struct _tp2802_image_adjust
|
||||
{
|
||||
unsigned char chip;
|
||||
unsigned char ch;
|
||||
unsigned int hue;
|
||||
unsigned int contrast;
|
||||
unsigned int brightness;
|
||||
unsigned int saturation;
|
||||
unsigned int sharpness;
|
||||
} tp2802_image_adjust;
|
||||
|
||||
typedef struct _tp2802_PTZ_data
|
||||
{
|
||||
unsigned char chip;
|
||||
unsigned char ch;
|
||||
unsigned char mode;
|
||||
unsigned char data[128];
|
||||
} tp2802_PTZ_data;
|
||||
|
||||
// IOCTL Definitions
|
||||
#define TP2802_IOC_MAGIC 'v'
|
||||
|
||||
#define TP2802_READ_REG _IOWR(TP2802_IOC_MAGIC, 1, tp2802_register)
|
||||
#define TP2802_WRITE_REG _IOW(TP2802_IOC_MAGIC, 2, tp2802_register)
|
||||
#define TP2802_SET_VIDEO_MODE _IOW(TP2802_IOC_MAGIC, 3, tp2802_video_mode)
|
||||
#define TP2802_GET_VIDEO_MODE _IOWR(TP2802_IOC_MAGIC, 4, tp2802_video_mode)
|
||||
#define TP2802_GET_VIDEO_LOSS _IOWR(TP2802_IOC_MAGIC, 5, tp2802_video_loss)
|
||||
#define TP2802_SET_IMAGE_ADJUST _IOW(TP2802_IOC_MAGIC, 6, tp2802_image_adjust)
|
||||
#define TP2802_GET_IMAGE_ADJUST _IOWR(TP2802_IOC_MAGIC, 7, tp2802_image_adjust)
|
||||
#define TP2802_SET_PTZ_DATA _IOW(TP2802_IOC_MAGIC, 8, tp2802_PTZ_data)
|
||||
#define TP2802_GET_PTZ_DATA _IOWR(TP2802_IOC_MAGIC, 9, tp2802_PTZ_data)
|
||||
#define TP2802_SET_SCAN_MODE _IOW(TP2802_IOC_MAGIC, 10, tp2802_work_mode)
|
||||
#define TP2802_DUMP_REG _IOW(TP2802_IOC_MAGIC, 11, tp2802_register)
|
||||
#define TP2802_FORCE_DETECT _IOW(TP2802_IOC_MAGIC, 12, tp2802_work_mode)
|
||||
#define TP2802_SET_SAMPLE_RATE _IOW(TP2802_IOC_MAGIC, 13, tp2802_audio_samplerate)
|
||||
#define TP2802_SET_AUDIO_PLAYBACK _IOW(TP2802_IOC_MAGIC, 14, tp2802_audio_playback)
|
||||
#define TP2802_SET_AUDIO_DA_VOLUME _IOW(TP2802_IOC_MAGIC, 15, tp2802_audio_da_volume)
|
||||
#define TP2802_SET_AUDIO_DA_MUTE _IOW(TP2802_IOC_MAGIC, 16, tp2802_audio_da_mute)
|
||||
#define TP2802_SET_BURST_DATA _IOW(TP2802_IOC_MAGIC, 17, tp2802_PTZ_data)
|
||||
#define TP2802_SET_VIDEO_INPUT _IOW(TP2802_IOC_MAGIC, 18, tp2802_register)
|
||||
#define TP2802_GET_VIDEO_INPUT _IOW(TP2802_IOC_MAGIC, 19, tp2802_register)
|
||||
#define TP2802_SET_PTZ_MODE _IOW(TP2802_IOC_MAGIC, 20, tp2802_PTZ_data)
|
||||
#define TP2802_SET_RX_MODE _IOW(TP2802_IOC_MAGIC, 21, tp2802_PTZ_data)
|
||||
|
||||
#define TP2802_SET_FIFO_DATA _IOW(TP2802_IOC_MAGIC, 25, tp2802_PTZ_data)
|
||||
#define TP2802_SET_FIFO_MODE _IOW(TP2802_IOC_MAGIC, 26, tp2802_PTZ_data)
|
||||
|
||||
#endif // end of __TP2825B_H__
|
||||
Reference in New Issue
Block a user