V4L/DVB (7066): ASUS My Cinema U3000 Mini DVBT Tuner
authorDaniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
Fri, 25 Jan 2008 09:02:42 +0000 (06:02 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Fri, 25 Jan 2008 21:05:15 +0000 (19:05 -0200)
Adding support for ASUS My Cinema U3000 Mini DVBT Tuner

Signed-off-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/dvb-usb/dib0700_devices.c
drivers/media/dvb/dvb-usb/dvb-usb-ids.h

index a7088ce..de36790 100644 (file)
@@ -230,6 +230,27 @@ static struct mt2266_config stk7700d_mt2266_config[2] = {
        }
 };
 
+static int stk7700P2_frontend_attach(struct dvb_usb_adapter *adap)
+{
+       if (adap->id == 0) {
+               dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
+               msleep(10);
+               dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
+               dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
+               dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
+               dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
+               msleep(10);
+               dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
+               msleep(10);
+               dib7000p_i2c_enumeration(&adap->dev->i2c_adap,1,18,stk7700d_dib7000p_mt2266_config);
+       }
+
+       adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap,0x80+(adap->id << 1),
+                               &stk7700d_dib7000p_mt2266_config[adap->id]);
+
+       return adap->fe == NULL ? -ENODEV : 0;
+}
+
 static int stk7700d_frontend_attach(struct dvb_usb_adapter *adap)
 {
        if (adap->id == 0) {
@@ -850,8 +871,10 @@ struct usb_device_id dib0700_usb_id_table[] = {
                { USB_DEVICE(USB_VID_PINNACLE,  USB_PID_PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T) },
                { USB_DEVICE(USB_VID_COMPRO,    USB_PID_COMPRO_VIDEOMATE_U500_PC) },
 /* 20 */{ USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_EXPRESS) },
-/* 21 */{ USB_DEVICE(USB_VID_GIGABYTE, USB_PID_GIGABYTE_U7000) },
-/* 22 */{ USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ARTEC_T14BR) },
+               { USB_DEVICE(USB_VID_GIGABYTE,  USB_PID_GIGABYTE_U7000) },
+               { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ARTEC_T14BR) },
+               { USB_DEVICE(USB_VID_ASUS,      USB_PID_ASUS_U3000) },
+               { USB_DEVICE(USB_VID_ASUS,      USB_PID_ASUS_U3100) },
                { 0 }           /* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table);
@@ -923,7 +946,6 @@ struct dvb_usb_device_properties dib0700_devices[] = {
                                { &dib0700_usb_id_table[20] },
                                { NULL },
                        },
-                       /* dom : pour Gigabyte U7000 */
                        {   "Gigabyte U7000",
                                { &dib0700_usb_id_table[21], NULL },
                                { NULL },
@@ -1010,6 +1032,25 @@ struct dvb_usb_device_properties dib0700_devices[] = {
                .num_adapters = 1,
                .adapter = {
                        {
+                               .frontend_attach  = stk7700P2_frontend_attach,
+                               .tuner_attach     = stk7700d_tuner_attach,
+
+                               DIB0700_DEFAULT_STREAMING_CONFIG(0x02),
+                       },
+               },
+
+               .num_device_descs = 1,
+               .devices = {
+                       {   "ASUS My Cinema U3000 Mini DVBT Tuner",
+                               { &dib0700_usb_id_table[23], NULL },
+                               { NULL },
+                       },
+               }
+       }, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
+
+               .num_adapters = 1,
+               .adapter = {
+                       {
                                .frontend_attach  = stk7070p_frontend_attach,
                                .tuner_attach     = dib7070p_tuner_attach,
 
@@ -1019,7 +1060,7 @@ struct dvb_usb_device_properties dib0700_devices[] = {
                        },
                },
 
-               .num_device_descs = 3,
+               .num_device_descs = 4,
                .devices = {
                        {   "DiBcom STK7070P reference design",
                                { &dib0700_usb_id_table[15], NULL },
@@ -1032,7 +1073,11 @@ struct dvb_usb_device_properties dib0700_devices[] = {
                        {   "Artec T14BR DVB-T",
                                { &dib0700_usb_id_table[22], NULL },
                                { NULL },
-                       }
+                       },
+                       {   "ASUS My Cinema U3100 Mini DVBT Tuner",
+                               { &dib0700_usb_id_table[24], NULL },
+                               { NULL },
+                       },
                }
        }, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
 
index 36aeda2..a411430 100644 (file)
@@ -17,6 +17,7 @@
 #define USB_VID_ANCHOR                         0x0547
 #define USB_VID_ANSONIC                                0x10b9
 #define USB_VID_ANUBIS_ELECTRONIC              0x10fd
+#define USB_VID_ASUS                           0x0b05
 #define USB_VID_AVERMEDIA                      0x07ca
 #define USB_VID_COMPRO                         0x185b
 #define USB_VID_COMPRO_UNK                     0x145f
 #define USB_PID_LIFEVIEW_TV_WALKER_TWIN_WARM           0x0513
 /* dom pour gigabyte u7000 */
 #define USB_PID_GIGABYTE_U7000                         0x7001
+#define USB_PID_ASUS_U3000                             0x171f
+#define USB_PID_ASUS_U3100                             0x173f
 
 #endif