diff options
author | Hartmut Hackmann <hartmut.hackmann@t\-online.de> | 2006-02-07 03:49:10 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-02-07 03:49:10 -0500 |
commit | df42eaf2b2f2c43969d879dbcafa698c666fe8a9 (patch) | |
tree | 7cbfeaf66d839d29f682cfc7356bd8cca0116965 /drivers/media/video/saa7134/saa7134-cards.c | |
parent | 0eb3de20a1cec67547951cebc4fcddc701e7428b (diff) |
V4L/DVB (3305): Added support for the ADS Instant TV DUO Cardbus PTV331
Analog and DVB-T are working, Remote not yet.
This card is based on the new LifeView design, there should be many variants.
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-cards.c')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index f469f17a25cf..d65b9dd90342 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -2657,7 +2657,23 @@ struct saa7134_board saa7134_boards[] = { | |||
2657 | .amux = LINE2, | 2657 | .amux = LINE2, |
2658 | }}, | 2658 | }}, |
2659 | }, | 2659 | }, |
2660 | 2660 | [SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331] = { | |
2661 | .name = "ADS Instant TV Duo Cardbus PTV331", | ||
2662 | .audio_clock = 0x00200000, | ||
2663 | .tuner_type = TUNER_PHILIPS_TDA8290, | ||
2664 | .radio_type = UNSET, | ||
2665 | .tuner_addr = ADDR_UNSET, | ||
2666 | .radio_addr = ADDR_UNSET, | ||
2667 | .mpeg = SAA7134_MPEG_DVB, | ||
2668 | .gpiomask = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */ | ||
2669 | .inputs = {{ | ||
2670 | .name = name_tv, | ||
2671 | .vmux = 1, | ||
2672 | .amux = TV, | ||
2673 | .tv = 1, | ||
2674 | .gpio = 0x00200000, | ||
2675 | }}, | ||
2676 | }, | ||
2661 | }; | 2677 | }; |
2662 | 2678 | ||
2663 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); | 2679 | const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); |
@@ -3141,6 +3157,12 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
3141 | .subdevice = 0x0301, | 3157 | .subdevice = 0x0301, |
3142 | .driver_data = SAA7134_BOARD_FLYDVBT_LR301, | 3158 | .driver_data = SAA7134_BOARD_FLYDVBT_LR301, |
3143 | },{ | 3159 | },{ |
3160 | .vendor = PCI_VENDOR_ID_PHILIPS, | ||
3161 | .device = PCI_DEVICE_ID_PHILIPS_SAA7133, | ||
3162 | .subvendor = 0x0331, | ||
3163 | .subdevice = 0x1421, | ||
3164 | .driver_data = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331, | ||
3165 | },{ | ||
3144 | /* --- boards without eeprom + subsystem ID --- */ | 3166 | /* --- boards without eeprom + subsystem ID --- */ |
3145 | .vendor = PCI_VENDOR_ID_PHILIPS, | 3167 | .vendor = PCI_VENDOR_ID_PHILIPS, |
3146 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, | 3168 | .device = PCI_DEVICE_ID_PHILIPS_SAA7134, |
@@ -3263,6 +3285,10 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
3263 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); | 3285 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); |
3264 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06); | 3286 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06); |
3265 | break; | 3287 | break; |
3288 | case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: | ||
3289 | saa_writeb(SAA7134_GPIO_GPMODE3, 0x08); | ||
3290 | saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x00); | ||
3291 | break; | ||
3266 | case SAA7134_BOARD_AVERMEDIA_CARDBUS: | 3292 | case SAA7134_BOARD_AVERMEDIA_CARDBUS: |
3267 | /* power-up tuner chip */ | 3293 | /* power-up tuner chip */ |
3268 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0xffffffff); | 3294 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0xffffffff); |
@@ -3413,6 +3439,14 @@ int saa7134_board_init2(struct saa7134_dev *dev) | |||
3413 | i2c_transfer(&dev->i2c_adap, &msg, 1); | 3439 | i2c_transfer(&dev->i2c_adap, &msg, 1); |
3414 | } | 3440 | } |
3415 | break; | 3441 | break; |
3442 | case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: | ||
3443 | /* make the tda10046 find its eeprom */ | ||
3444 | { | ||
3445 | u8 data[] = { 0x3c, 0x33, 0x62}; | ||
3446 | struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)}; | ||
3447 | i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
3448 | } | ||
3449 | break; | ||
3416 | } | 3450 | } |
3417 | return 0; | 3451 | return 0; |
3418 | } | 3452 | } |