aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/em28xx/em28xx.h
diff options
context:
space:
mode:
authorDevin Heitmueller <devin.heitmueller@gmail.com>2008-06-28 07:57:06 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-07-20 06:12:48 -0400
commita9fc52bcbeb5245b58d23c558f3e3e8f18bebbc3 (patch)
treebd0f1f54ed1ee0f3994a38ecebe6dc5fb00c4bc5 /drivers/media/video/em28xx/em28xx.h
parent305519c924d8f2f2f85c390c6d456dc41dbe0284 (diff)
V4L/DVB (8123): Add support for em2860 based PointNix Intra-Oral Camera
em28xx-cards.c em28xx-input.c em28xx-video.c em28xx.h - Add support for the PointNix Intra-Oral Camera, which required addition of a construct for reading the "snapshot" button (provided on the em2860 and em2880 chips, but this is the first case where I have seen it actually used in a product). The button is wired to pin 56 on the em2880. http://www.pointnix.com/ENG/dental/product_02.asp Thanks to Roberto Mantovani <rmantovani@libero.it> for testing the changes Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/em28xx/em28xx.h')
-rw-r--r--drivers/media/video/em28xx/em28xx.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h
index cff618b2d13c..89842c5d64a1 100644
--- a/drivers/media/video/em28xx/em28xx.h
+++ b/drivers/media/video/em28xx/em28xx.h
@@ -57,6 +57,7 @@
57#define EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950 16 57#define EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950 16
58#define EM2880_BOARD_PINNACLE_PCTV_HD_PRO 17 58#define EM2880_BOARD_PINNACLE_PCTV_HD_PRO 17
59#define EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2 18 59#define EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2 18
60#define EM2860_BOARD_POINTNIX_INTRAORAL_CAMERA 19
60 61
61/* Limits minimum and default number of buffers */ 62/* Limits minimum and default number of buffers */
62#define EM28XX_MIN_BUF 4 63#define EM28XX_MIN_BUF 4
@@ -249,6 +250,7 @@ struct em28xx_board {
249 unsigned int has_12mhz_i2s:1; 250 unsigned int has_12mhz_i2s:1;
250 unsigned int max_range_640_480:1; 251 unsigned int max_range_640_480:1;
251 unsigned int has_dvb:1; 252 unsigned int has_dvb:1;
253 unsigned int has_snapshot_button:1;
252 254
253 enum em28xx_decoder decoder; 255 enum em28xx_decoder decoder;
254 256
@@ -328,6 +330,7 @@ struct em28xx {
328 unsigned int has_12mhz_i2s:1; 330 unsigned int has_12mhz_i2s:1;
329 unsigned int max_range_640_480:1; 331 unsigned int max_range_640_480:1;
330 unsigned int has_dvb:1; 332 unsigned int has_dvb:1;
333 unsigned int has_snapshot_button:1;
331 334
332 /* Some older em28xx chips needs a waiting time after writing */ 335 /* Some older em28xx chips needs a waiting time after writing */
333 unsigned int wait_after_write; 336 unsigned int wait_after_write;
@@ -418,6 +421,11 @@ struct em28xx {
418 /* Caches GPO and GPIO registers */ 421 /* Caches GPO and GPIO registers */
419 unsigned char reg_gpo, reg_gpio; 422 unsigned char reg_gpo, reg_gpio;
420 423
424 /* Snapshot button */
425 char snapshot_button_path[30]; /* path of the input dev */
426 struct input_dev *sbutton_input_dev;
427 struct delayed_work sbutton_query_work;
428
421 struct em28xx_dvb *dvb; 429 struct em28xx_dvb *dvb;
422}; 430};
423 431
@@ -483,6 +491,8 @@ int em28xx_get_key_terratec(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw);
483int em28xx_get_key_em_haup(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw); 491int em28xx_get_key_em_haup(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw);
484int em28xx_get_key_pinnacle_usb_grey(struct IR_i2c *ir, u32 *ir_key, 492int em28xx_get_key_pinnacle_usb_grey(struct IR_i2c *ir, u32 *ir_key,
485 u32 *ir_raw); 493 u32 *ir_raw);
494void em28xx_register_snapshot_button(struct em28xx *dev);
495void em28xx_deregister_snapshot_button(struct em28xx *dev);
486 496
487/* printk macros */ 497/* printk macros */
488 498