From: Stefan Ringel <stefan.ringel@arcor.de>
To: linux-media@vger.kernel.org
Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
Subject: tm6000
Date: Sat, 27 Mar 2010 15:55:38 +0100 [thread overview]
Message-ID: <4BAE1C6A.6070601@arcor.de> (raw)
In-Reply-To: <4B9D44D3.8080201@arcor.de>
Hi Mauro,
First, I have a question, in the function "int tm6000_cards_setup(struct
tm6000_core *dev)" have you reset gpio 1 and 4, but why? In my lastest
patch I have add a few sticks and it's works with and without this
part.What for sticks use this part? For a week I have become a email
with usbsnoop log from a tm5600 based stick and I have analysed it.
Resume is that I think it use two reset gpio's.
1. GPIO1 = 0
2. GPIO4 = 0
3. wait a few ms
4. GPIO1 = 1
5. GPIO4 = 1
/*
* Default initialization. Most of the devices seem to use GPIO1
* and GPIO4.on the same way, so, this handles the common sequence
* used by most devices.
* If a device uses a different sequence or different GPIO pins for
* reset, just add the code at the board-specific part
*/
for (i = 0; i < 2; i++) {
rc = tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
dev->gpio.tuner_reset, 0x00);
if (rc < 0) {
printk(KERN_ERR "Error %i doing GPIO1 reset\n", rc);
return rc;
}
msleep(10); /* Just to be conservative */
rc = tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
dev->gpio.tuner_reset, 0x01);
if (rc < 0) {
printk(KERN_ERR "Error %i doing GPIO1 reset\n", rc);
return rc;
}
msleep(10);
rc = tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, TM6000_GPIO_4, 0);
if (rc < 0) {
printk(KERN_ERR "Error %i doing GPIO4 reset\n", rc);
return rc;
}
msleep(10);
rc = tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, TM6000_GPIO_4, 1);
if (rc < 0) {
printk(KERN_ERR "Error %i doing GPIO4 reset\n", rc);
return rc;
}
if (!i) {
rc = tm6000_get_reg16(dev, 0x40, 0, 0);
if (rc >= 0)
printk(KERN_DEBUG "board=%d\n", rc);
}
}
For a week I have become a email with usbsnoop log from a tm5600 based
stick and I have analysed it. Resume is that I think it use two reset
gpio's.
1. GPIO1 = 0
2. GPIO4 = 0
3. wait a few ms
4. GPIO1 = 1
5. GPIO4 = 1
So I think, if it a part from function tm6000_cards_setup is, then is
that part wrong and must remove to tuner_callback function.
Second, I will rewrite the gpio's into a struct.
for example:
in tm6000.h
struct tm6000_gpio {
int tuner_reset;
int tuner_on;
int demod_reset;
int demod_on;
int power_led;
int dvb_led;
int ir;
};
in tm6000_card.c
[TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE] = {
.name = "Terratec Cinergy Hybrid XE / Cinergy Hybrid-Stick",
.tuner_type = TUNER_XC2028, /* has a XC3028 */
.tuner_addr = 0xc2 >> 1,
.demod_addr = 0x1e >> 1,
.type = TM6010,
.caps = {
.has_tuner = 1,
.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,
},
},
The rest I send in the patch email. So can the gpio's define in the
board struct and using per label in the functions.
Stefan Ringel
--
Stefan Ringel <stefan.ringel@arcor.de>
next prev parent reply other threads:[~2010-03-27 14:56 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-10 17:57 [PATCH] tm6000: add new hybrid-stick stefan.ringel
2010-03-14 7:11 ` Stefan Ringel
2010-03-14 18:26 ` Mauro Carvalho Chehab
2010-03-14 20:19 ` Stefan Ringel
2010-03-14 23:06 ` Mauro Carvalho Chehab
2010-03-27 14:55 ` Stefan Ringel [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-05-18 7:35 tm6000 Dmitri Belimov
2010-05-05 4:50 tm6000 Dmitri Belimov
2010-05-05 5:44 ` tm6000 Bee Hock Goh
2010-05-05 7:27 ` tm6000 Dmitri Belimov
2010-05-05 7:47 ` tm6000 Bee Hock Goh
2010-05-05 13:58 ` tm6000 Mauro Carvalho Chehab
2010-04-23 0:48 [PATCH] tm6000 fix i2c Dmitri Belimov
2010-04-23 15:15 ` Stefan Ringel
2010-04-26 0:25 ` Dmitri Belimov
2010-04-26 12:58 ` Bee Hock Goh
2010-04-27 5:15 ` Dmitri Belimov
2010-04-27 6:07 ` Bee Hock Goh
2010-04-28 5:49 ` tm6000 Dmitri Belimov
2010-04-28 7:32 ` tm6000 Bee Hock Goh
2010-04-28 12:14 ` tm6000 Mauro Carvalho Chehab
2009-11-10 4:37 [PATCH] Add new TV cards of Beholder Dmitri Belimov
2009-11-23 21:28 ` Mauro Carvalho Chehab
2010-01-12 8:24 ` tm6000 Dmitri Belimov
2010-01-12 11:50 ` tm6000 Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BAE1C6A.6070601@arcor.de \
--to=stefan.ringel@arcor.de \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.