All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] tm6000: switch to gpio strcut
@ 2010-03-29 16:51 stefan.ringel
  2010-03-29 16:51 ` [PATCH 2/3] tm6000: add gpios to board struct stefan.ringel
  0 siblings, 1 reply; 3+ messages in thread
From: stefan.ringel @ 2010-03-29 16:51 UTC (permalink / raw)
  To: linux-media; +Cc: mchehab, dheitmueller, Stefan Ringel

From: Stefan Ringel <stefan.ringel@arcor.de>

switch to a gpio structure

Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
---
 drivers/staging/tm6000/tm6000-cards.c |   68 ++++++++++++++++++++++----------
 drivers/staging/tm6000/tm6000.h       |   13 ++++++-
 2 files changed, 59 insertions(+), 22 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
index 2053008..1710990 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -66,7 +66,8 @@ struct tm6000_board {
 	int             tuner_type;     /* type of the tuner */
 	int             tuner_addr;     /* tuner address */
 	int             demod_addr;     /* demodulator address */
-	int		gpio_addr_tun_reset;	/* GPIO used for tuner reset */
+
+	struct tm6000_gpio gpio;
 };
 
 struct tm6000_board tm6000_boards[] = {
@@ -75,7 +76,9 @@ struct tm6000_board tm6000_boards[] = {
 		.caps = {
 			.has_tuner    = 1,
 		},
-		.gpio_addr_tun_reset = TM6000_GPIO_1,
+		.gpio = {
+			.tuner_reset	= TM6000_GPIO_1,
+		},
 	},
 	[TM5600_BOARD_GENERIC] = {
 		.name         = "Generic tm5600 board",
@@ -85,7 +88,9 @@ struct tm6000_board tm6000_boards[] = {
 		.caps = {
 			.has_tuner	= 1,
 		},
-		.gpio_addr_tun_reset = TM6000_GPIO_1,
+		.gpio = {
+			.tuner_reset	= TM6000_GPIO_1,
+		},
 	},
 	[TM6000_BOARD_GENERIC] = {
 		.name         = "Generic tm6000 board",
@@ -95,7 +100,9 @@ struct tm6000_board tm6000_boards[] = {
 			.has_tuner	= 1,
 			.has_dvb	= 1,
 		},
-		.gpio_addr_tun_reset = TM6000_GPIO_1,
+		.gpio = {
+			.tuner_reset	= TM6000_GPIO_1,
+		},
 	},
 	[TM6010_BOARD_GENERIC] = {
 		.name         = "Generic tm6010 board",
@@ -106,7 +113,9 @@ struct tm6000_board tm6000_boards[] = {
 			.has_tuner	= 1,
 			.has_dvb	= 1,
 		},
-		.gpio_addr_tun_reset = TM6010_GPIO_4,
+		.gpio = {
+			.tuner_reset	= TM6010_GPIO_4,
+		},
 	},
 	[TM5600_BOARD_10MOONS_UT821] = {
 		.name         = "10Moons UT 821",
@@ -117,7 +126,9 @@ struct tm6000_board tm6000_boards[] = {
 			.has_tuner    = 1,
 			.has_eeprom   = 1,
 		},
-		.gpio_addr_tun_reset = TM6000_GPIO_1,
+		.gpio = {
+			.tuner_reset	= TM6000_GPIO_1,
+		},
 	},
 	[TM5600_BOARD_10MOONS_UT330] = {
 		.name         = "10Moons UT 330",
@@ -154,7 +165,9 @@ struct tm6000_board tm6000_boards[] = {
 			.has_eeprom   = 0,
 			.has_remote   = 1,
 		},
-		.gpio_addr_tun_reset = TM6000_GPIO_4,
+		.gpio = {
+			.tuner_reset	= TM6000_GPIO_4,
+		},
 	},
 	[TM6000_BOARD_ADSTECH_MINI_DUAL_TV] = {
 		.name         = "ADSTECH Mini Dual TV USB",
@@ -167,7 +180,9 @@ struct tm6000_board tm6000_boards[] = {
 			.has_zl10353  = 1,
 			.has_eeprom   = 0,
 		},
-		.gpio_addr_tun_reset = TM6000_GPIO_4,
+		.gpio = {
+			.tuner_reset	= TM6000_GPIO_4,
+		},
 	},
 	[TM6010_BOARD_HAUPPAUGE_900H] = {
 		.name         = "Hauppauge WinTV HVR-900H / WinTV USB2-Stick",
@@ -181,7 +196,9 @@ struct tm6000_board tm6000_boards[] = {
 			.has_zl10353  = 1,
 			.has_eeprom   = 1,
 		},
-		.gpio_addr_tun_reset = TM6010_GPIO_2,
+		.gpio = {
+			.tuner_reset	= TM6010_GPIO_2,
+		},
 	},
 	[TM6010_BOARD_BEHOLD_WANDER] = {
 		.name         = "Beholder Wander DVB-T/TV/FM USB2.0",
@@ -196,7 +213,9 @@ struct tm6000_board tm6000_boards[] = {
 			.has_eeprom   = 1,
 			.has_remote   = 1,
 		},
-		.gpio_addr_tun_reset = TM6000_GPIO_2,
+		.gpio = {
+			.tuner_reset	= TM6000_GPIO_2,
+		},
 	},
 	[TM6010_BOARD_BEHOLD_VOYAGER] = {
 		.name         = "Beholder Voyager TV/FM USB2.0",
@@ -210,7 +229,9 @@ struct tm6000_board tm6000_boards[] = {
 			.has_eeprom   = 1,
 			.has_remote   = 1,
 		},
-		.gpio_addr_tun_reset = TM6000_GPIO_2,
+		.gpio = {
+			.tuner_reset	= TM6000_GPIO_2,
+		},
 	},
 	[TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE] = {
 		.name         = "Terratec Cinergy Hybrid XE / Cinergy Hybrid-Stick",
@@ -225,7 +246,9 @@ struct tm6000_board tm6000_boards[] = {
 			.has_eeprom   = 1,
 			.has_remote   = 1,
 		},
-		.gpio_addr_tun_reset = TM6010_GPIO_2,
+		.gpio = {
+			.tuner_reset	= TM6010_GPIO_2,
+		},
 	},
 	[TM6010_BOARD_TWINHAN_TU501] = {
 		.name         = "Twinhan TU501(704D1)",
@@ -240,7 +263,9 @@ struct tm6000_board tm6000_boards[] = {
 			.has_eeprom   = 1,
 			.has_remote   = 1,
 		},
-		.gpio_addr_tun_reset = TM6010_GPIO_2,
+		.gpio = {
+			.tuner_reset	= TM6010_GPIO_2,
+		},
 	}
 };
 
@@ -299,21 +324,21 @@ int tm6000_tuner_callback(void *ptr, int component, int command, int arg)
 			case TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE:
 			case TM6010_BOARD_TWINHAN_TU501:
 				tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
-					       dev->tuner_reset_gpio, 0x01);
+					       dev->gpio.tuner_reset, 0x01);
 				msleep(60);
 				tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
-					       dev->tuner_reset_gpio, 0x00);
+					       dev->gpio.tuner_reset, 0x00);
 				msleep(75);
 				tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
-					       dev->tuner_reset_gpio, 0x01);
+					       dev->gpio.tuner_reset, 0x01);
 				msleep(60);
 				break;
 			default:
 				tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
-					       dev->tuner_reset_gpio, 0x00);
+					       dev->gpio.tuner_reset, 0x00);
 				msleep(130);
 				tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
-					       dev->tuner_reset_gpio, 0x01);
+					       dev->gpio.tuner_reset, 0x01);
 				msleep(130);
 				break;
 			}
@@ -396,7 +421,7 @@ int tm6000_cards_setup(struct tm6000_core *dev)
 	 */
 	for (i = 0; i < 2; i++) {
 		rc = tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
-					dev->tuner_reset_gpio, 0x00);
+					dev->gpio.tuner_reset, 0x00);
 		if (rc < 0) {
 			printk(KERN_ERR "Error %i doing GPIO1 reset\n", rc);
 			return rc;
@@ -404,7 +429,7 @@ int tm6000_cards_setup(struct tm6000_core *dev)
 
 		msleep(10); /* Just to be conservative */
 		rc = tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
-					dev->tuner_reset_gpio, 0x01);
+					dev->gpio.tuner_reset, 0x01);
 		if (rc < 0) {
 			printk(KERN_ERR "Error %i doing GPIO1 reset\n", rc);
 			return rc;
@@ -501,7 +526,8 @@ static int tm6000_init_dev(struct tm6000_core *dev)
 	dev->dev_type   = tm6000_boards[dev->model].type;
 	dev->tuner_type = tm6000_boards[dev->model].tuner_type;
 	dev->tuner_addr = tm6000_boards[dev->model].tuner_addr;
-	dev->tuner_reset_gpio = tm6000_boards[dev->model].gpio_addr_tun_reset;
+
+	dev->gpio = tm6000_boards[dev->model].gpio;
 
 	dev->demod_addr = tm6000_boards[dev->model].demod_addr;
 
diff --git a/drivers/staging/tm6000/tm6000.h b/drivers/staging/tm6000/tm6000.h
index bd727f1..172f7d7 100644
--- a/drivers/staging/tm6000/tm6000.h
+++ b/drivers/staging/tm6000/tm6000.h
@@ -103,6 +103,16 @@ enum tm6000_mode {
 	TM6000_MODE_DIGITAL,
 };
 
+struct tm6000_gpio {
+	int		tuner_reset;
+	int		tuner_on;
+	int		demod_reset;
+	int		demod_on;
+	int		power_led;
+	int		dvb_led;
+	int		ir;
+}
+
 struct tm6000_capabilities {
 	unsigned int    has_tuner:1;
 	unsigned int    has_tda9874:1;
@@ -140,7 +150,8 @@ struct tm6000_core {
 	/* Tuner configuration */
 	int				tuner_type;		/* type of the tuner */
 	int				tuner_addr;		/* tuner address */
-	int				tuner_reset_gpio;	/* GPIO used for tuner reset */
+
+	struct tm6000_gpio		gpio;
 
 	/* Demodulator configuration */
 	int				demod_addr;	/* demodulator address */
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/3] tm6000: add gpios to board struct
  2010-03-29 16:51 [PATCH 1/3] tm6000: switch to gpio strcut stefan.ringel
@ 2010-03-29 16:51 ` stefan.ringel
  2010-03-29 16:51   ` [PATCH 3/3] tm6000: add gpios for tm6010 generic board stefan.ringel
  0 siblings, 1 reply; 3+ messages in thread
From: stefan.ringel @ 2010-03-29 16:51 UTC (permalink / raw)
  To: linux-media; +Cc: mchehab, dheitmueller, Stefan Ringel

From: Stefan Ringel <stefan.ringel@arcor.de>

Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
---
 drivers/staging/tm6000/tm6000-cards.c |   37 +++++++++++++++++++++++++--------
 1 files changed, 28 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
index 1710990..ab187c3 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -195,9 +195,16 @@ struct tm6000_board tm6000_boards[] = {
 			.has_dvb      = 1,
 			.has_zl10353  = 1,
 			.has_eeprom   = 1,
+			.has_remote   = 1,
 		},
 		.gpio = {
 			.tuner_reset	= TM6010_GPIO_2,
+			.tuner_on	= TM6010_GPIO_3,
+			.demod_reset	= TM6010_GPIO_1,
+			.demod_on	= TM6010_GPIO_4,
+			.power_led	= TM6010_GPIO_7,
+			.dvb_led	= TM6010_GPIO_5,
+			.ir		= TM6010_GPIO_0,
 		},
 	},
 	[TM6010_BOARD_BEHOLD_WANDER] = {
@@ -248,6 +255,12 @@ struct tm6000_board tm6000_boards[] = {
 		},
 		.gpio = {
 			.tuner_reset	= TM6010_GPIO_2,
+			.tuner_on	= TM6010_GPIO_3,
+			.demod_reset	= TM6010_GPIO_1,
+			.demod_on	= TM6010_GPIO_4,
+			.power_led	= TM6010_GPIO_7,
+			.dvb_led	= TM6010_GPIO_5,
+			.ir		= TM6010_GPIO_0,
 		},
 	},
 	[TM6010_BOARD_TWINHAN_TU501] = {
@@ -265,6 +278,12 @@ struct tm6000_board tm6000_boards[] = {
 		},
 		.gpio = {
 			.tuner_reset	= TM6010_GPIO_2,
+			.tuner_on	= TM6010_GPIO_3,
+			.demod_reset	= TM6010_GPIO_1,
+			.demod_on	= TM6010_GPIO_4,
+			.power_led	= TM6010_GPIO_7,
+			.dvb_led	= TM6010_GPIO_5,
+			.ir		= TM6010_GPIO_0,
 		},
 	}
 };
@@ -382,30 +401,30 @@ int tm6000_cards_setup(struct tm6000_core *dev)
 	case TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE:
 	case TM6010_BOARD_TWINHAN_TU501:
 		/* Turn xceive 3028 on */
-		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, TM6010_GPIO_3, 0x01);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, dev->gpio.tuner_on, 0x01);
 		msleep(15);
 		/* Turn zarlink zl10353 on */
-		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, TM6010_GPIO_4, 0x00);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, dev->gpio.demod_on, 0x00);
 		msleep(15);
 		/* Reset zarlink zl10353 */
-		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, TM6010_GPIO_1, 0x00);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, dev->gpio.demod_reset, 0x00);
 		msleep(50);
-		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, TM6010_GPIO_1, 0x01);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, dev->gpio.demod_reset, 0x01);
 		msleep(15);
 		/* Turn zarlink zl10353 off */
-		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, TM6010_GPIO_4, 0x01);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, dev->gpio.demod_on, 0x01);
 		msleep(15);
 		/* ir ? */
-		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, TM6010_GPIO_0, 0x01);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, dev->gpio.ir, 0x01);
 		msleep(15);
 		/* Power led on (blue) */
-		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, TM6010_GPIO_7, 0x00);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, dev->gpio.power_led, 0x00);
 		msleep(15);
 		/* DVB led off (orange) */
-		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, TM6010_GPIO_5, 0x01);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, dev->gpio.dvb_led, 0x01);
 		msleep(15);
 		/* Turn zarlink zl10353 on */
-		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, TM6010_GPIO_4, 0x00);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, dev->gpio.demod_on, 0x00);
 		msleep(15);
 		break;
 	default:
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 3/3] tm6000: add gpios for tm6010 generic board
  2010-03-29 16:51 ` [PATCH 2/3] tm6000: add gpios to board struct stefan.ringel
@ 2010-03-29 16:51   ` stefan.ringel
  0 siblings, 0 replies; 3+ messages in thread
From: stefan.ringel @ 2010-03-29 16:51 UTC (permalink / raw)
  To: linux-media; +Cc: mchehab, dheitmueller, Stefan Ringel

From: Stefan Ringel <stefan.ringel@arcor.de>

Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
---
 drivers/staging/tm6000/tm6000-cards.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
index ab187c3..2f0274d 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -109,12 +109,22 @@ struct tm6000_board tm6000_boards[] = {
 		.type         = TM6010,
 		.tuner_type   = TUNER_XC2028,
 		.tuner_addr   = 0xc2 >> 1,
+		.demod_addr   = 0x1e >> 1,
 		.caps = {
 			.has_tuner	= 1,
 			.has_dvb	= 1,
+			.has_zl10353	= 1,
+			.has_eeprom	= 1,
+			.has_remote	= 1,
 		},
 		.gpio = {
-			.tuner_reset	= TM6010_GPIO_4,
+			.tuner_reset	= TM6010_GPIO_2,
+			.tuner_on	= TM6010_GPIO_3,
+			.demod_reset	= TM6010_GPIO_1,
+			.demod_on	= TM6010_GPIO_4,
+			.power_led	= TM6010_GPIO_7,
+			.dvb_led	= TM6010_GPIO_5,
+			.ir		= TM6010_GPIO_0,
 		},
 	},
 	[TM5600_BOARD_10MOONS_UT821] = {
@@ -400,6 +410,7 @@ int tm6000_cards_setup(struct tm6000_core *dev)
 	case TM6010_BOARD_HAUPPAUGE_900H:
 	case TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE:
 	case TM6010_BOARD_TWINHAN_TU501:
+	case TM6010_BOARD_GENERIC:
 		/* Turn xceive 3028 on */
 		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, dev->gpio.tuner_on, 0x01);
 		msleep(15);
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-03-29 16:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-29 16:51 [PATCH 1/3] tm6000: switch to gpio strcut stefan.ringel
2010-03-29 16:51 ` [PATCH 2/3] tm6000: add gpios to board struct stefan.ringel
2010-03-29 16:51   ` [PATCH 3/3] tm6000: add gpios for tm6010 generic board stefan.ringel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.