diff mbox

Leadtek WinFast DVR3100 H zl10353_read_register: readreg error (reg=127, ret==-6)

Message ID 1266103739.3067.111.camel@palomino.walls.org (mailing list archive)
State RFC
Headers show

Commit Message

Andy Walls Feb. 13, 2010, 11:28 p.m. UTC
None
diff mbox

Patch

diff -r 14021dfc00f3 linux/drivers/media/video/cx18/cx18-cards.c
--- a/linux/drivers/media/video/cx18/cx18-cards.c	Thu Feb 11 23:11:30 2010 -0200
+++ b/linux/drivers/media/video/cx18/cx18-cards.c	Sat Feb 13 18:14:32 2010 -0500
@@ -452,10 +452,34 @@ 
 		.tune_lane = 0,
 		.initial_emrs = 0x2,
 	},
-	.gpio_init.initial_value = 0x6,
-	.gpio_init.direction = 0x7,
-	.gpio_audio_input = { .mask   = 0x7,
-			      .tuner  = 0x6, .linein = 0x2, .radio  = 0x2 },
+
+	/*
+	 *  GPIOs
+	 *  0 0x00000001 Audio/FM related???
+	 *  1 0x00000002 XC3028 reset line, active low
+	 *  2 0x00000004 Audio input multiplexer: 1 - Tuner, 0 - Line-in
+	 */
+#define DVR3100_XC3028_RESET_GPIO	(1 << 1)
+
+	/* FIXME - Try GPIO pins 8-15 first, then 3-7, then 16-31, then 0, */
+	/* then try them again using active high for the reset, until found */
+#define DVR3100_ZL10353_RESET_GPIO	(1 << 8)
+
+	.gpio_init.direction = 0x5 |
+			       DVR3100_XC3028_RESET_GPIO |
+			       DVR3100_ZL10353_RESET_GPIO,
+	.gpio_init.initial_value = 0x4 |
+				   DVR3100_XC3028_RESET_GPIO |
+				   DVR3100_ZL10353_RESET_GPIO,
+	.gpio_audio_input = { .mask   = 0x4,
+			      .tuner  = 0x4, .linein = 0x0, .radio  = 0x0 },
+	.gpio_i2c_slave_reset = {
+		.active_hi_mask = 0x0,
+		.active_lo_mask = DVR3100_XC3028_RESET_GPIO |
+				  DVR3100_ZL10353_RESET_GPIO,
+		.msecs_asserted = 50, /* ZL10353 requires 50 ms */
+		.msecs_recovery = 50, /* A guess */
+	},
 	.xceive_pin = 1,
 	.pci_list = cx18_pci_leadtek_dvr3100h,
 	.i2c = &cx18_i2c_std,