@@ -54,12 +54,21 @@
#ifndef PCI_DEVICE_ID_DM1105
#define PCI_DEVICE_ID_DM1105 0x036f
#endif
+#ifndef PCI_DEVICE_ID_DM1105S
+#define PCI_DEVICE_ID_DM1105S 0x1105
+#endif
+#ifndef PCI_VENDOR_ID_AXESS
+#define PCI_VENDOR_ID_AXESS 0x195d
+#endif
#ifndef PCI_DEVICE_ID_DW2002
#define PCI_DEVICE_ID_DW2002 0x2002
#endif
#ifndef PCI_DEVICE_ID_DW2004
#define PCI_DEVICE_ID_DW2004 0x2004
#endif
+#ifndef PCI_DEVICE_ID_DM05
+#define PCI_DEVICE_ID_DM05 0x1105
+#endif
/* ----------------------------------------------- */
/* sdmc dm1105 registers */
@@ -150,6 +159,11 @@
#define DM1105_LNB_13V 0x00010100
#define DM1105_LNB_18V 0x00000100
+/* GPIO's for LNB power control for Axess DM05 - EXPERIMENTAL!*/
+#define DM05_LNB_MASK 0xfffffffc
+#define DM05_LNB_13V 0x3fffd
+#define DM05_LNB_18V 0x3fffc
+
static int ir_debug;
module_param(ir_debug, int, 0644);
MODULE_PARM_DESC(ir_debug, "enable debugging information for IR decoding");
@@ -316,7 +330,8 @@
static int dm1105dvb_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
{
struct dm1105dvb *dm1105dvb = frontend_to_dm1105dvb(fe);
-
+ switch (dm1105dvb->pdev->subsystem_device){
+ case PCI_DEVICE_ID_DW2002:
if (voltage == SEC_VOLTAGE_18) {
outl(DM1105_LNB_MASK, dm_io_mem(DM1105_GPIOCTR));
outl(DM1105_LNB_18V, dm_io_mem(DM1105_GPIOVAL));
@@ -325,7 +340,19 @@
outl(DM1105_LNB_MASK, dm_io_mem(DM1105_GPIOCTR));
outl(DM1105_LNB_13V, dm_io_mem(DM1105_GPIOVAL));
}
-
+ break;
+
+ case PCI_DEVICE_ID_DM05:
+ if (voltage == SEC_VOLTAGE_18) {
+ outl(DM05_LNB_MASK, dm_io_mem(DM1105_GPIOCTR));
+ outl(DM05_LNB_18V, dm_io_mem(DM1105_GPIOVAL));
+ }else {
+ /*LNB ON-13V by default!*/
+ outl(DM05_LNB_MASK, dm_io_mem(DM1105_GPIOCTR));
+ outl(DM05_LNB_13V, dm_io_mem(DM1105_GPIOVAL));
+ }
+ break;
+ }
return 0;
}
@@ -632,6 +659,7 @@
dm1105dvb_set_voltage;
}
break;
+
case PCI_DEVICE_ID_DW2004:
dm1105dvb->fe = dvb_attach(
cx24116_attach, &serit_sp2633_config,
@@ -870,6 +898,11 @@
.subvendor = PCI_ANY_ID,
.subdevice = PCI_DEVICE_ID_DW2004,
}, {
+ .vendor = PCI_VENDOR_ID_AXESS,
+ .device = PCI_DEVICE_ID_DM1105S,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_DEVICE_ID_DM05,
+ }, {
/* empty */
},
};