123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- /*
- * Driver for the ov7660 sensor
- *
- * Copyright (C) 2009 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
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, version 2.
- *
- */
- #ifndef M5602_OV7660_H_
- #define M5602_OV7660_H_
- #include "m5602_sensor.h"
- #define OV7660_GAIN 0x00
- #define OV7660_BLUE_GAIN 0x01
- #define OV7660_RED_GAIN 0x02
- #define OV7660_VREF 0x03
- #define OV7660_COM1 0x04
- #define OV7660_BAVE 0x05
- #define OV7660_GEAVE 0x06
- #define OV7660_AECHH 0x07
- #define OV7660_RAVE 0x08
- #define OV7660_COM2 0x09
- #define OV7660_PID 0x0a
- #define OV7660_VER 0x0b
- #define OV7660_COM3 0x0c
- #define OV7660_COM4 0x0d
- #define OV7660_COM5 0x0e
- #define OV7660_COM6 0x0f
- #define OV7660_AECH 0x10
- #define OV7660_CLKRC 0x11
- #define OV7660_COM7 0x12
- #define OV7660_COM8 0x13
- #define OV7660_COM9 0x14
- #define OV7660_COM10 0x15
- #define OV7660_RSVD16 0x16
- #define OV7660_HSTART 0x17
- #define OV7660_HSTOP 0x18
- #define OV7660_VSTART 0x19
- #define OV7660_VSTOP 0x1a
- #define OV7660_PSHFT 0x1b
- #define OV7660_MIDH 0x1c
- #define OV7660_MIDL 0x1d
- #define OV7660_MVFP 0x1e
- #define OV7660_LAEC 0x1f
- #define OV7660_BOS 0x20
- #define OV7660_GBOS 0x21
- #define OV7660_GROS 0x22
- #define OV7660_ROS 0x23
- #define OV7660_AEW 0x24
- #define OV7660_AEB 0x25
- #define OV7660_VPT 0x26
- #define OV7660_BBIAS 0x27
- #define OV7660_GbBIAS 0x28
- #define OV7660_RSVD29 0x29
- #define OV7660_RBIAS 0x2c
- #define OV7660_HREF 0x32
- #define OV7660_ADC 0x37
- #define OV7660_OFON 0x39
- #define OV7660_TSLB 0x3a
- #define OV7660_COM12 0x3c
- #define OV7660_COM13 0x3d
- #define OV7660_LCC1 0x62
- #define OV7660_LCC2 0x63
- #define OV7660_LCC3 0x64
- #define OV7660_LCC4 0x65
- #define OV7660_LCC5 0x66
- #define OV7660_HV 0x69
- #define OV7660_RSVDA1 0xa1
- #define OV7660_DEFAULT_GAIN 0x0e
- #define OV7660_DEFAULT_RED_GAIN 0x80
- #define OV7660_DEFAULT_BLUE_GAIN 0x80
- #define OV7660_DEFAULT_SATURATION 0x00
- #define OV7660_DEFAULT_EXPOSURE 0x20
- /* Kernel module parameters */
- extern int force_sensor;
- extern bool dump_sensor;
- int ov7660_probe(struct sd *sd);
- int ov7660_init(struct sd *sd);
- int ov7660_init(struct sd *sd);
- int ov7660_init_controls(struct sd *sd);
- int ov7660_start(struct sd *sd);
- int ov7660_stop(struct sd *sd);
- void ov7660_disconnect(struct sd *sd);
- static const struct m5602_sensor ov7660 = {
- .name = "ov7660",
- .i2c_slave_id = 0x42,
- .i2c_regW = 1,
- .probe = ov7660_probe,
- .init = ov7660_init,
- .init_controls = ov7660_init_controls,
- .start = ov7660_start,
- .stop = ov7660_stop,
- .disconnect = ov7660_disconnect,
- };
- #endif
|