brintos

brintos / linux-shallow public Read only

0
0
Text · 1.6 KiB · 46b7297 Raw
70 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * USB Driver for ALi m5602 based webcams4 *5 * Copyright (C) 2008 Erik Andrén6 * Copyright (C) 2007 Ilyes Gouta. Based on the m5603x Linux Driver Project.7 * Copyright (C) 2005 m5603x Linux Driver Project <m5602@x3ng.com.br>8 *9 * Portions of code to USB interface and ALi driver software,10 * Copyright (c) 2006 Willem Duinker11 * v4l2 interface modeled after the V4L2 driver12 * for SN9C10x PC Camera Controllers13 */14 15#ifndef M5602_SENSOR_H_16#define M5602_SENSOR_H_17 18#include "m5602_bridge.h"19 20#define M5602_V4L2_CID_GREEN_BALANCE	(V4L2_CID_PRIVATE_BASE + 0)21#define M5602_V4L2_CID_NOISE_SUPPRESION	(V4L2_CID_PRIVATE_BASE + 1)22 23/* Enumerates all supported sensors */24enum sensors {25	OV9650_SENSOR	= 1,26	S5K83A_SENSOR	= 2,27	S5K4AA_SENSOR	= 3,28	MT9M111_SENSOR	= 4,29	PO1030_SENSOR	= 5,30	OV7660_SENSOR   = 6,31};32 33/* Enumerates all possible instruction types */34enum instruction {35	BRIDGE,36	SENSOR,37	SENSOR_LONG38};39 40struct m5602_sensor {41	/* Defines the name of a sensor */42	char name[32];43 44	/* What i2c address the sensor is connected to */45	u8 i2c_slave_id;46 47	/* Width of each i2c register (in bytes) */48	u8 i2c_regW;49 50	/* Probes if the sensor is connected */51	int (*probe)(struct sd *sd);52 53	/* Performs a initialization sequence */54	int (*init)(struct sd *sd);55 56	/* Controls initialization, maybe NULL */57	int (*init_controls)(struct sd *sd);58 59	/* Executed when the camera starts to send data */60	int (*start)(struct sd *sd);61 62	/* Executed when the camera ends to send data */63	int (*stop)(struct sd *sd);64 65	/* Executed when the device is disconnected */66	void (*disconnect)(struct sd *sd);67};68 69#endif70