SmartAudio/lichee/linux-4.9/drivers/media/platform/sunxi-vfe/device/camera.h

116 lines
3.8 KiB
C
Executable File

/*
* linux-4.9/drivers/media/platform/sunxi-vfe/device/camera.h
*
* Copyright (c) 2007-2017 Allwinnertech Co., Ltd.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
/*
* sunxi sensor header file
* Author:raymonxiu
*/
#ifndef __CAMERA__H__
#define __CAMERA__H__
#include <media/v4l2-subdev.h>
#include <linux/videodev2.h>
#include "../vfe.h"
#include "../vfe_subdev.h"
#include "../csi_cci/cci_helper.h"
#include "camera_cfg.h"
#include "../platform_cfg.h"
/*
* Basic window sizes. These probably belong somewhere more globally
* useful.
*/
#define ABS_SENSOR(x) ((x) > 0 ? (x) : -(x))
#define HXGA_WIDTH 4000
#define HXGA_HEIGHT 3000
#define QUXGA_WIDTH 3264
#define QUXGA_HEIGHT 2448
#define QSXGA_WIDTH 2592
#define QSXGA_HEIGHT 1936
#define QXGA_WIDTH 2048
#define QXGA_HEIGHT 1536
#define HD1080_WIDTH 1920
#define HD1080_HEIGHT 1080
#define UXGA_WIDTH 1600
#define UXGA_HEIGHT 1200
#define SXGA_WIDTH 1280
#define SXGA_HEIGHT 960
#define HD720_WIDTH 1280
#define HD720_HEIGHT 720
#define XGA_WIDTH 1024
#ifdef CONFIG_ARCH_SUN3IW1P1
#define XGA_HEIGHT 576
#else
#define XGA_HEIGHT 768
#endif
#define SVGA_WIDTH 800
#define SVGA_HEIGHT 600
#define VGA_WIDTH 640
#define VGA_HEIGHT 480
#define QVGA_WIDTH 320
#define QVGA_HEIGHT 240
#define CIF_WIDTH 352
#define CIF_HEIGHT 288
#define QCIF_WIDTH 176
#define QCIF_HEIGHT 144
#define CSI_GPIO_HIGH 1
#define CSI_GPIO_LOW 0
#define CCI_BITS_8 8
#define CCI_BITS_16 16
struct sensor_info {
struct v4l2_subdev sd;
struct sensor_format_struct *fmt; /* Current format */
enum standby_mode stby_mode;
struct v4l2_ctrl_handler handler;
unsigned int width;
unsigned int height;
unsigned int capture_mode; /* V4L2_MODE_VIDEO/V4L2_MODE_IMAGE */
unsigned int af_first_flag;
unsigned int init_first_flag;
unsigned int preview_first_flag;
unsigned int auto_focus; /* 0:not in contin_focus 1: contin_focus */
unsigned int focus_status; /* 0:idle 1:busy */
unsigned int low_speed; /* 0:high speed 1:low speed */
int brightness;
int contrast;
int saturation;
int hue;
unsigned int hflip;
unsigned int vflip;
unsigned int gain;
unsigned int autogain;
unsigned int exp;
int exp_bias;
enum v4l2_exposure_auto_type autoexp;
unsigned int autowb;
enum v4l2_auto_n_preset_white_balance wb;
enum v4l2_colorfx clrfx;
enum v4l2_flash_led_mode flash_mode;
enum v4l2_power_line_frequency band_filter;
/* enum v4l2_autofocus_ctrl af_ctrl; */
struct v4l2_fract tpf;
struct sensor_win_size *current_wins;
struct flash_dev_info *fl_dev_info;
struct delayed_work work;
struct workqueue_struct *wq;
int night_mode;
int streaming;
};
#endif /* __CAMERA__H__ */