linux/drivers/media/usb/gspca/m5602/m5602_ov9650.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Driver for the ov9650 sensor
 *
 * Copyright (C) 2008 Erik Andrén
 * Copyright (C) 2007 Ilyes Gouta. Based on the m5603x Linux Driver Project.
 * Copyright (C) 2005 m5603x Linux Driver Project <[email protected]>
 *
 * Portions of code to USB interface and ALi driver software,
 * Copyright (c) 2006 Willem Duinker
 * v4l2 interface modeled after the V4L2 driver
 * for SN9C10x PC Camera Controllers
 */

#ifndef M5602_OV9650_H_
#define M5602_OV9650_H_

#include <linux/dmi.h>
#include "m5602_sensor.h"

/*****************************************************************************/

#define OV9650_GAIN
#define OV9650_BLUE
#define OV9650_RED
#define OV9650_VREF
#define OV9650_COM1
#define OV9650_BAVE
#define OV9650_GEAVE
#define OV9650_RSVD7
#define OV9650_COM2
#define OV9650_PID
#define OV9650_VER
#define OV9650_COM3
#define OV9650_COM4
#define OV9650_COM5
#define OV9650_COM6
#define OV9650_AECH
#define OV9650_CLKRC
#define OV9650_COM7
#define OV9650_COM8
#define OV9650_COM9
#define OV9650_COM10
#define OV9650_RSVD16
#define OV9650_HSTART
#define OV9650_HSTOP
#define OV9650_VSTRT
#define OV9650_VSTOP
#define OV9650_PSHFT
#define OV9650_MVFP
#define OV9650_AEW
#define OV9650_AEB
#define OV9650_VPT
#define OV9650_BBIAS
#define OV9650_GbBIAS
#define OV9650_Gr_COM
#define OV9650_RBIAS
#define OV9650_HREF
#define OV9650_CHLF
#define OV9650_ARBLM
#define OV9650_RSVD35
#define OV9650_RSVD36
#define OV9650_ADC
#define OV9650_ACOM38
#define OV9650_OFON
#define OV9650_TSLB
#define OV9650_COM12
#define OV9650_COM13
#define OV9650_COM15
#define OV9650_COM16
#define OV9650_LCC1
#define OV9650_LCC2
#define OV9650_LCC3
#define OV9650_LCC4
#define OV9650_LCC5
#define OV9650_HV
#define OV9650_DBLV
#define OV9650_COM21
#define OV9650_COM22
#define OV9650_COM24
#define OV9650_DBLC1
#define OV9650_RSVD94
#define OV9650_RSVD95
#define OV9650_RSVD96
#define OV9650_LCCFB
#define OV9650_LCCFR
#define OV9650_AECHM
#define OV9650_COM26
#define OV9650_ACOMA8
#define OV9650_ACOMA9

#define OV9650_REGISTER_RESET
#define OV9650_VGA_SELECT
#define OV9650_CIF_SELECT
#define OV9650_QVGA_SELECT
#define OV9650_QCIF_SELECT
#define OV9650_RGB_SELECT
#define OV9650_RAW_RGB_SELECT

#define OV9650_FAST_AGC_AEC
#define OV9650_AEC_UNLIM_STEP_SIZE
#define OV9650_BANDING
#define OV9650_AGC_EN
#define OV9650_AWB_EN
#define OV9650_AEC_EN

#define OV9650_VARIOPIXEL
#define OV9650_SYSTEM_CLK_SEL
#define OV9650_SLAM_MODE

#define OV9650_QVGA_VARIOPIXEL

#define OV9650_VFLIP
#define OV9650_HFLIP

#define OV9650_SOFT_SLEEP
#define OV9650_OUTPUT_DRIVE_2X

#define OV9650_DENOISE_ENABLE
#define OV9650_WHITE_PIXEL_ENABLE
#define OV9650_WHITE_PIXEL_OPTION

#define OV9650_LEFT_OFFSET

#define GAIN_DEFAULT
#define RED_GAIN_DEFAULT
#define BLUE_GAIN_DEFAULT
#define EXPOSURE_DEFAULT

/*****************************************************************************/

/* Kernel module parameters */
extern int force_sensor;
extern bool dump_sensor;

int ov9650_probe(struct sd *sd);
int ov9650_init(struct sd *sd);
int ov9650_init_controls(struct sd *sd);
int ov9650_start(struct sd *sd);
int ov9650_stop(struct sd *sd);
void ov9650_disconnect(struct sd *sd);

static const struct m5602_sensor ov9650 =;

#endif