diff options
Diffstat (limited to 'drivers/media/video/em28xx/em28xx.h')
-rw-r--r-- | drivers/media/video/em28xx/em28xx.h | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h index 96a56faeb77..00d2f62142e 100644 --- a/drivers/media/video/em28xx/em28xx.h +++ b/drivers/media/video/em28xx/em28xx.h @@ -218,6 +218,21 @@ enum em28xx_decoder { EM28XX_SAA7114 }; +#define MAX_GPIO 2 +struct gpio_ctl { + /* Register to be set */ + unsigned char reg; + /* Initial/final value */ + unsigned char val; + /* reset value - if set, it will do: + val1 - val2 - val1 + */ + unsigned char rst; + /* Sleep times + */ + unsigned int t1, t2, t3; +}; + struct em28xx_board { char *name; int vchannels; @@ -233,7 +248,8 @@ struct em28xx_board { unsigned int max_range_640_480:1; unsigned int has_dvb:1; - unsigned int analog_gpio; + struct gpio_ctl analog_gpio[MAX_GPIO]; + struct gpio_ctl digital_gpio[MAX_GPIO]; enum em28xx_decoder decoder; @@ -293,7 +309,6 @@ struct em28xx { char name[30]; /* name (including minor) of the device */ int model; /* index in the device_data struct */ int devno; /* marks the number of this device */ - unsigned int analog_gpio; unsigned int is_em2800:1; unsigned int has_msp34xx:1; unsigned int has_tda9887:1; @@ -303,6 +318,9 @@ struct em28xx { unsigned int max_range_640_480:1; unsigned int has_dvb:1; + struct gpio_ctl (*analog_gpio)[MAX_GPIO]; + struct gpio_ctl (*digital_gpio)[MAX_GPIO]; + int video_inputs; /* number of video inputs */ struct list_head devlist; @@ -443,6 +461,7 @@ extern struct em28xx_board em28xx_boards[]; extern struct usb_device_id em28xx_id_table[]; extern const unsigned int em28xx_bcount; void em28xx_set_ir(struct em28xx *dev, struct IR_i2c *ir); +int em28xx_tuner_callback(void *ptr, int command, int arg); /* Provided by em28xx-input.c */ /* TODO: Check if the standard get_key handlers on ir-common can be used */ |