* [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.