forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.1 KiB
74 lines
2.1 KiB
/* SPDX-License-Identifier: GPL-2.0-or-later */ |
|
/* |
|
* Copyright (c) 2001 Jean-Fredric Clere, Nikolas Zimmermann, Georg Acher |
|
* Mark Cave-Ayland, Carlo E Prelz, Dick Streefland |
|
* Copyright (c) 2002, 2003 Tuukka Toivonen |
|
* Copyright (c) 2008 Erik Andrén |
|
* |
|
* P/N 861037: Sensor HDCS1000 ASIC STV0600 |
|
* P/N 861050-0010: Sensor HDCS1000 ASIC STV0600 |
|
* P/N 861050-0020: Sensor Photobit PB100 ASIC STV0600-1 - QuickCam Express |
|
* P/N 861055: Sensor ST VV6410 ASIC STV0610 - LEGO cam |
|
* P/N 861075-0040: Sensor HDCS1000 ASIC |
|
* P/N 961179-0700: Sensor ST VV6410 ASIC STV0602 - Dexxa WebCam USB |
|
* P/N 861040-0000: Sensor ST VV6410 ASIC STV0610 - QuickCam Web |
|
*/ |
|
|
|
#ifndef STV06XX_SENSOR_H_ |
|
#define STV06XX_SENSOR_H_ |
|
|
|
#include "stv06xx.h" |
|
|
|
#define IS_1020(sd) ((sd)->sensor == &stv06xx_sensor_hdcs1020) |
|
|
|
extern const struct stv06xx_sensor stv06xx_sensor_vv6410; |
|
extern const struct stv06xx_sensor stv06xx_sensor_hdcs1x00; |
|
extern const struct stv06xx_sensor stv06xx_sensor_hdcs1020; |
|
extern const struct stv06xx_sensor stv06xx_sensor_pb0100; |
|
extern const struct stv06xx_sensor stv06xx_sensor_st6422; |
|
|
|
struct stv06xx_sensor { |
|
/* Defines the name of a sensor */ |
|
char name[32]; |
|
|
|
/* Sensor i2c address */ |
|
u8 i2c_addr; |
|
|
|
/* Flush value*/ |
|
u8 i2c_flush; |
|
|
|
/* length of an i2c word */ |
|
u8 i2c_len; |
|
|
|
/* Isoc packet size (per mode) */ |
|
int min_packet_size[4]; |
|
int max_packet_size[4]; |
|
|
|
/* Probes if the sensor is connected */ |
|
int (*probe)(struct sd *sd); |
|
|
|
/* Performs a initialization sequence */ |
|
int (*init)(struct sd *sd); |
|
|
|
/* Initializes the controls */ |
|
int (*init_controls)(struct sd *sd); |
|
|
|
/* Reads a sensor register */ |
|
int (*read_sensor)(struct sd *sd, const u8 address, |
|
u8 *i2c_data, const u8 len); |
|
|
|
/* Writes to a sensor register */ |
|
int (*write_sensor)(struct sd *sd, const u8 address, |
|
u8 *i2c_data, const u8 len); |
|
|
|
/* Instructs the sensor to start streaming */ |
|
int (*start)(struct sd *sd); |
|
|
|
/* Instructs the sensor to stop streaming */ |
|
int (*stop)(struct sd *sd); |
|
|
|
/* Instructs the sensor to dump all its contents */ |
|
int (*dump)(struct sd *sd); |
|
}; |
|
|
|
#endif
|
|
|