aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx18/cx18-cards.h
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2008-06-22 00:27:00 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-06-26 14:58:54 -0400
commit1f09e8a25c9aaa4066b4593c1bf99a4cbcc38120 (patch)
tree4b204cb090b2b1be58d0aebc53291afd62e12321 /drivers/media/video/cx18/cx18-cards.h
parent08cf7b2ed172cc83f3d2f44b712b3d54e6cc4ae6 (diff)
V4L/DVB (8068): cx18: Add I2C slave reset via GPIO upon initialization
cx18: Add I2C slave reset via GPIO upon initialization. One user, Michael <msd4824@yahoo.com>, has reported this allows his HVR-1600 EEPROM to be consistently recognized when using (long,) 100 msec delays. The delays in this commit are nominal (10 & 40 msec) and need testing/tuning on boards with I2C problems to find the right values. Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/cx18/cx18-cards.h')
-rw-r--r--drivers/media/video/cx18/cx18-cards.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/media/video/cx18/cx18-cards.h b/drivers/media/video/cx18/cx18-cards.h
index 3c2c0b92956c..dc2dd945d4c3 100644
--- a/drivers/media/video/cx18/cx18-cards.h
+++ b/drivers/media/video/cx18/cx18-cards.h
@@ -78,6 +78,13 @@ struct cx18_gpio_init { /* set initial GPIO DIR and OUT values */
78 u32 initial_value; 78 u32 initial_value;
79}; 79};
80 80
81struct cx18_gpio_i2c_slave_reset {
82 u32 active_lo_mask; /* GPIO outputs that reset i2c chips when low */
83 u32 active_hi_mask; /* GPIO outputs that reset i2c chips when high */
84 int msecs_asserted; /* time period reset must remain asserted */
85 int msecs_recovery; /* time after deassert for chips to be ready */
86};
87
81struct cx18_card_tuner { 88struct cx18_card_tuner {
82 v4l2_std_id std; /* standard for which the tuner is suitable */ 89 v4l2_std_id std; /* standard for which the tuner is suitable */
83 int tuner; /* tuner ID (from tuner.h) */ 90 int tuner; /* tuner ID (from tuner.h) */
@@ -114,7 +121,8 @@ struct cx18_card {
114 121
115 /* GPIO card-specific settings */ 122 /* GPIO card-specific settings */
116 u8 xceive_pin; /* XCeive tuner GPIO reset pin */ 123 u8 xceive_pin; /* XCeive tuner GPIO reset pin */
117 struct cx18_gpio_init gpio_init; 124 struct cx18_gpio_init gpio_init;
125 struct cx18_gpio_i2c_slave_reset gpio_i2c_slave_reset;
118 126
119 struct cx18_card_tuner tuners[CX18_CARD_MAX_TUNERS]; 127 struct cx18_card_tuner tuners[CX18_CARD_MAX_TUNERS];
120 struct cx18_card_tuner_i2c *i2c; 128 struct cx18_card_tuner_i2c *i2c;