/* 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 <m5602@x3ng.com.br>
*
* 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 0 x00
#define OV9650_BLUE 0 x01
#define OV9650_RED 0 x02
#define OV9650_VREF 0 x03
#define OV9650_COM1 0 x04
#define OV9650_BAVE 0 x05
#define OV9650_GEAVE 0 x06
#define OV9650_RSVD7 0 x07
#define OV9650_COM2 0 x09
#define OV9650_PID 0 x0a
#define OV9650_VER 0 x0b
#define OV9650_COM3 0 x0c
#define OV9650_COM4 0 x0d
#define OV9650_COM5 0 x0e
#define OV9650_COM6 0 x0f
#define OV9650_AECH 0 x10
#define OV9650_CLKRC 0 x11
#define OV9650_COM7 0 x12
#define OV9650_COM8 0 x13
#define OV9650_COM9 0 x14
#define OV9650_COM10 0 x15
#define OV9650_RSVD16 0 x16
#define OV9650_HSTART 0 x17
#define OV9650_HSTOP 0 x18
#define OV9650_VSTRT 0 x19
#define OV9650_VSTOP 0 x1a
#define OV9650_PSHFT 0 x1b
#define OV9650_MVFP 0 x1e
#define OV9650_AEW 0 x24
#define OV9650_AEB 0 x25
#define OV9650_VPT 0 x26
#define OV9650_BBIAS 0 x27
#define OV9650_GbBIAS 0 x28
#define OV9650_Gr_COM 0 x29
#define OV9650_RBIAS 0 x2c
#define OV9650_HREF 0 x32
#define OV9650_CHLF 0 x33
#define OV9650_ARBLM 0 x34
#define OV9650_RSVD35 0 x35
#define OV9650_RSVD36 0 x36
#define OV9650_ADC 0 x37
#define OV9650_ACOM38 0 x38
#define OV9650_OFON 0 x39
#define OV9650_TSLB 0 x3a
#define OV9650_COM12 0 x3c
#define OV9650_COM13 0 x3d
#define OV9650_COM15 0 x40
#define OV9650_COM16 0 x41
#define OV9650_LCC1 0 x62
#define OV9650_LCC2 0 x63
#define OV9650_LCC3 0 x64
#define OV9650_LCC4 0 x65
#define OV9650_LCC5 0 x66
#define OV9650_HV 0 x69
#define OV9650_DBLV 0 x6b
#define OV9650_COM21 0 x8b
#define OV9650_COM22 0 x8c
#define OV9650_COM24 0 x8e
#define OV9650_DBLC1 0 x8f
#define OV9650_RSVD94 0 x94
#define OV9650_RSVD95 0 x95
#define OV9650_RSVD96 0 x96
#define OV9650_LCCFB 0 x9d
#define OV9650_LCCFR 0 x9e
#define OV9650_AECHM 0 xa1
#define OV9650_COM26 0 xa5
#define OV9650_ACOMA8 0 xa8
#define OV9650_ACOMA9 0 xa9
#define OV9650_REGISTER_RESET (1 << 7 )
#define OV9650_VGA_SELECT (1 << 6 )
#define OV9650_CIF_SELECT (1 << 5 )
#define OV9650_QVGA_SELECT (1 << 4 )
#define OV9650_QCIF_SELECT (1 << 3 )
#define OV9650_RGB_SELECT (1 << 2 )
#define OV9650_RAW_RGB_SELECT (1 << 0 )
#define OV9650_FAST_AGC_AEC (1 << 7 )
#define OV9650_AEC_UNLIM_STEP_SIZE (1 << 6 )
#define OV9650_BANDING (1 << 5 )
#define OV9650_AGC_EN (1 << 2 )
#define OV9650_AWB_EN (1 << 1 )
#define OV9650_AEC_EN (1 << 0 )
#define OV9650_VARIOPIXEL (1 << 2 )
#define OV9650_SYSTEM_CLK_SEL (1 << 7 )
#define OV9650_SLAM_MODE (1 << 4 )
#define OV9650_QVGA_VARIOPIXEL (1 << 7 )
#define OV9650_VFLIP (1 << 4 )
#define OV9650_HFLIP (1 << 5 )
#define OV9650_SOFT_SLEEP (1 << 4 )
#define OV9650_OUTPUT_DRIVE_2X (1 << 0 )
#define OV9650_DENOISE_ENABLE (1 << 5 )
#define OV9650_WHITE_PIXEL_ENABLE (1 << 1 )
#define OV9650_WHITE_PIXEL_OPTION (1 << 0 )
#define OV9650_LEFT_OFFSET 0 x62
#define GAIN_DEFAULT 0 x14
#define RED_GAIN_DEFAULT 0 x70
#define BLUE_GAIN_DEFAULT 0 x20
#define EXPOSURE_DEFAULT 0 x1ff
/*****************************************************************************/
/* 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 = {
.name = "OV9650" ,
.i2c_slave_id = 0 x60,
.i2c_regW = 1 ,
.probe = ov9650_probe,
.init = ov9650_init,
.init_controls = ov9650_init_controls,
.start = ov9650_start,
.stop = ov9650_stop,
.disconnect = ov9650_disconnect,
};
#endif
Messung V0.5 in Prozent C=94 H=94 G=93
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet am 2026-06-07)
¤
*© Formatika GbR, Deutschland