summaryrefslogtreecommitdiff
path: root/drivers/media/dvb/dvb-usb/m920x.h
diff options
context:
space:
mode:
authorAapo Tahkola <aet@rasterburn.org>2007-03-05 18:23:19 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-04-27 15:44:35 -0300
commit26247018be1ca7ca464f5f32e8ca7c897ded5393 (patch)
treef73212d3525ecf69d36700ffc59e91be11b26de1 /drivers/media/dvb/dvb-usb/m920x.h
parentfee73165ee0ff7cfbffad4233a70f56b821f434e (diff)
V4L/DVB (5423): M920x: i2c cleanups
- Implement m920x i2c as suggested by Pierre Willenbrock - remove "magic" hack - r/w bit is not part of the i2c address - move hardware remarks to header file Signed-off-by: Aapo Tahkola <aet@rasterburn.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/m920x.h')
-rw-r--r--drivers/media/dvb/dvb-usb/m920x.h32
1 files changed, 25 insertions, 7 deletions
diff --git a/drivers/media/dvb/dvb-usb/m920x.h b/drivers/media/dvb/dvb-usb/m920x.h
index c354196ffe5d..c5ef592cbfee 100644
--- a/drivers/media/dvb/dvb-usb/m920x.h
+++ b/drivers/media/dvb/dvb-usb/m920x.h
@@ -19,17 +19,35 @@
#define M9206_MAX_FILTERS 8
-#define M9206_I2C_TUNER 0
-#define M9206_I2C_DEMOD 1
-#define M9206_I2C_MAX 2
+/*
+sequences found in logs:
+[index value]
+0x80 write addr
+(0x00 out byte)*
+0x40 out byte
+
+0x80 write addr
+(0x00 out byte)*
+0x80 read addr
+(0x21 in byte)*
+0x60 in byte
+
+this sequence works:
+0x80 read addr
+(0x21 in byte)*
+0x60 in byte
+
+_my guess_:
+0x80: begin i2c transfer using address. value=address<<1|(reading?1:0)
+0x00: write byte
+0x21: read byte, more to follow
+0x40: write last byte of message sequence
+0x60: read last byte of message sequence
+ */
struct m9206_state {
u16 filters[M9206_MAX_FILTERS];
int filtering_enabled;
int rep_count;
- struct {
- unsigned char addr;
- unsigned char magic;
- }i2c_r[M9206_I2C_MAX];
};
#endif