V4L/DVB (7226): saa7134: add support for the NXP Snake DVB-S reference design
authorHartmut Hackmann <hartmut.hackmann@t-online.de>
Tue, 22 Apr 2008 17:42:11 +0000 (14:42 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Thu, 24 Apr 2008 17:07:43 +0000 (14:07 -0300)
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Documentation/video4linux/CARDLIST.saa7134
drivers/media/video/saa7134/saa7134-cards.c
drivers/media/video/saa7134/saa7134-dvb.c
drivers/media/video/saa7134/saa7134.h

index 0424901ebc78b0a11f700a21d926e1b4b3fe4d2f..3ec78d4cfea34c4ba04aa69eb63bf71f9a59b82f 100644 (file)
 130 -> Beholder BeholdTV M6 / BeholdTV M6 Extra [5ace:6190,5ace:6193]
 131 -> Twinhan Hybrid DTV-DVB 3056 PCI          [1822:0022]
 132 -> Genius TVGO AM11MCE
+133 -> NXP Snake DVB-S reference design
index 6f5744286e8c2044aece263c1e4d65ff66a5c629..16cd319dc4e6b2bf56a45b0d89a52698cb3c5571 100644 (file)
@@ -3992,6 +3992,24 @@ struct saa7134_board saa7134_boards[] = {
                        .gpio = 0x6000,
                },
        },
+       [SAA7134_BOARD_PHILIPS_SNAKE] = {
+               .name           = "NXP Snake DVB-S reference design",
+               .audio_clock    = 0x00200000,
+               .tuner_type     = TUNER_ABSENT,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .mpeg           = SAA7134_MPEG_DVB,
+               .inputs = {{
+                       .name   = name_comp1,
+                       .vmux   = 3,
+                       .amux   = LINE1,
+               }, {
+                       .name   = name_svideo,
+                       .vmux   = 8,
+                       .amux   = LINE1,
+               } },
+       },
 };
 
 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -5283,6 +5301,14 @@ int saa7134_board_init2(struct saa7134_dev *dev)
                }
                break;
        case SAA7134_BOARD_PHILIPS_EUROPA:
+               if (dev->autodetected && (dev->eedata[0x41] == 0x1c)) {
+                       /* Reconfigure board as Snake reference design */
+                       dev->board = SAA7134_BOARD_PHILIPS_SNAKE;
+                       dev->tuner_type = saa7134_boards[dev->board].tuner_type;
+                       printk(KERN_INFO "%s: Reconfigured board as %s\n",
+                               dev->name, saa7134_boards[dev->board].name);
+                       break;
+               }
        case SAA7134_BOARD_VIDEOMATE_DVBT_300:
        case SAA7134_BOARD_ASUS_EUROPA2_HYBRID:
                /* The Philips EUROPA based hybrid boards have the tuner connected through
index 72fd9fed8a34eb724e5062d6fe7c6d0cfca906e8..5d20ec06e48d9facd34086789e431d0cfb978145 100644 (file)
@@ -44,6 +44,7 @@
 #include "tda827x.h"
 #include "isl6421.h"
 #include "isl6405.h"
+#include "lnbp21.h"
 
 MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]");
 MODULE_LICENSE("GPL");
@@ -1080,6 +1081,18 @@ static int dvb_init(struct saa7134_dev *dev)
        case SAA7134_BOARD_TWINHAN_DTV_DVB_3056:
                configure_tda827x_fe(dev, &twinhan_dtv_dvb_3056_config);
                break;
+       case SAA7134_BOARD_PHILIPS_SNAKE:
+               dev->dvb.frontend = dvb_attach(tda10086_attach, &flydvbs,
+                                               &dev->i2c_adap);
+               if (dev->dvb.frontend) {
+                       if (dvb_attach(tda826x_attach, dev->dvb.frontend, 0x60,
+                                       &dev->i2c_adap, 0) == NULL)
+                               wprintk("%s: No tda826x found!\n", __FUNCTION__);
+                       if (dvb_attach(lnbp21_attach, dev->dvb.frontend,
+                                       &dev->i2c_adap, 0, 0) == NULL)
+                               wprintk("%s: No lnbp21 found!\n", __FUNCTION__);
+               }
+               break;
        default:
                wprintk("Huh? unknown DVB card?\n");
                break;
index f940d0254798a6eb6ae7da25e986be7998fa8bd6..4dc66f4b0e4a73d55c3e5553b8e2c05e3134c8d5 100644 (file)
@@ -253,7 +253,8 @@ struct saa7134_format {
 #define SAA7134_BOARD_BEHOLD_607_9FM   129
 #define SAA7134_BOARD_BEHOLD_M6                130
 #define SAA7134_BOARD_TWINHAN_DTV_DVB_3056 131
-#define SAA7134_BOARD_GENIUS_TVGO_A11MCE 132
+#define SAA7134_BOARD_GENIUS_TVGO_A11MCE   132
+#define SAA7134_BOARD_PHILIPS_SNAKE        133
 
 #define SAA7134_MAXBOARDS 8
 #define SAA7134_INPUT_MAX 8