diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-21 00:14:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-21 00:14:42 -0400 |
commit | f894d18380e7e7ff05f6622ccb75d2881922c6e9 (patch) | |
tree | e3c11b831b68096239a49dec539a49e49c1d90b7 /drivers/media/dvb/dvb-usb/anysee.h | |
parent | d13ff0559fea73f237a01669887d2c10e11d7662 (diff) | |
parent | d20b27478d6ccf7c4c8de4f09db2bdbaec82a6c0 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb
* git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (277 commits)
V4L/DVB (8415): gspca: Infinite loop in i2c_w() of etoms.
V4L/DVB (8414): videodev/cx18: fix get_index bug and error-handling lock-ups
V4L/DVB (8411): videobuf-dma-contig.c: fix 64-bit build for pre-2.6.24 kernels
V4L/DVB (8410): sh_mobile_ceu_camera: fix 64-bit compiler warnings
V4L/DVB (8397): video: convert select VIDEO_ZORAN_ZR36060 into depends on
V4L/DVB (8396): video: Fix Kbuild dependency for VIDEO_IR_I2C
V4L/DVB (8395): saa7134: Fix Kbuild dependency of ir-kbd-i2c
V4L/DVB (8394): ir-common: CodingStyle fix: move EXPORT_SYMBOL_GPL to their proper places
V4L/DVB (8393): media/video: Fix depencencies for VIDEOBUF
V4L/DVB (8392): media/Kconfig: Convert V4L1_COMPAT select into "depends on"
V4L/DVB (8390): videodev: add comment and remove magic number.
V4L/DVB (8389): videodev: simplify get_index()
V4L/DVB (8387): Some cosmetic changes
V4L/DVB (8381): ov7670: fix compile warnings
V4L/DVB (8380): saa7115: use saa7115_auto instead of saa711x as the autodetect driver name.
V4L/DVB (8379): saa7127: Make device detection optional
V4L/DVB (8378): cx18: move cx18_av_vbi_setup to av-core.c and rename to cx18_av_std_setup
V4L/DVB (8377): ivtv/cx18: ensure the default control values are correct
V4L/DVB (8376): cx25840: move cx25840_vbi_setup to core.c and rename to cx25840_std_setup
V4L/DVB (8374): gspca: No conflict of 0c45:6011 with the sn9c102 driver.
...
Diffstat (limited to 'drivers/media/dvb/dvb-usb/anysee.h')
-rw-r--r-- | drivers/media/dvb/dvb-usb/anysee.h | 304 |
1 files changed, 304 insertions, 0 deletions
diff --git a/drivers/media/dvb/dvb-usb/anysee.h b/drivers/media/dvb/dvb-usb/anysee.h new file mode 100644 index 000000000000..7ca01ff6e13c --- /dev/null +++ b/drivers/media/dvb/dvb-usb/anysee.h | |||
@@ -0,0 +1,304 @@ | |||
1 | /* | ||
2 | * DVB USB Linux driver for Anysee E30 DVB-C & DVB-T USB2.0 receiver | ||
3 | * | ||
4 | * Copyright (C) 2007 Antti Palosaari <crope@iki.fi> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | * | ||
20 | * TODO: | ||
21 | * - add smart card reader support for Conditional Access (CA) | ||
22 | * | ||
23 | * Card reader in Anysee is nothing more than ISO 7816 card reader. | ||
24 | * There is no hardware CAM in any Anysee device sold. | ||
25 | * In my understanding it should be implemented by making own module | ||
26 | * for ISO 7816 card reader, like dvb_ca_en50221 is implemented. This | ||
27 | * module registers serial interface that can be used to communicate | ||
28 | * with any ISO 7816 smart card. | ||
29 | * | ||
30 | * Any help according to implement serial smart card reader support | ||
31 | * is highly welcome! | ||
32 | */ | ||
33 | |||
34 | #ifndef _DVB_USB_ANYSEE_H_ | ||
35 | #define _DVB_USB_ANYSEE_H_ | ||
36 | |||
37 | #define DVB_USB_LOG_PREFIX "anysee" | ||
38 | #include "dvb-usb.h" | ||
39 | |||
40 | #define deb_info(args...) dprintk(dvb_usb_anysee_debug, 0x01, args) | ||
41 | #define deb_xfer(args...) dprintk(dvb_usb_anysee_debug, 0x02, args) | ||
42 | #define deb_rc(args...) dprintk(dvb_usb_anysee_debug, 0x04, args) | ||
43 | #define deb_reg(args...) dprintk(dvb_usb_anysee_debug, 0x08, args) | ||
44 | #define deb_i2c(args...) dprintk(dvb_usb_anysee_debug, 0x10, args) | ||
45 | #define deb_fw(args...) dprintk(dvb_usb_anysee_debug, 0x20, args) | ||
46 | |||
47 | enum cmd { | ||
48 | CMD_I2C_READ = 0x33, | ||
49 | CMD_I2C_WRITE = 0x31, | ||
50 | CMD_REG_READ = 0xb0, | ||
51 | CMD_REG_WRITE = 0xb1, | ||
52 | CMD_STREAMING_CTRL = 0x12, | ||
53 | CMD_LED_AND_IR_CTRL = 0x16, | ||
54 | CMD_GET_IR_CODE = 0x41, | ||
55 | CMD_GET_HW_INFO = 0x19, | ||
56 | CMD_SMARTCARD = 0x34, | ||
57 | }; | ||
58 | |||
59 | struct anysee_state { | ||
60 | u8 tuner; | ||
61 | u8 seq; | ||
62 | }; | ||
63 | |||
64 | #endif | ||
65 | |||
66 | /*************************************************************************** | ||
67 | * USB API description (reverse engineered) | ||
68 | *************************************************************************** | ||
69 | |||
70 | Transaction flow: | ||
71 | ================= | ||
72 | BULK[00001] >>> REQUEST PACKET 64 bytes | ||
73 | BULK[00081] <<< REPLY PACKET #1 64 bytes (PREVIOUS TRANSACTION REPLY) | ||
74 | BULK[00081] <<< REPLY PACKET #2 64 bytes (CURRENT TRANSACTION REPLY) | ||
75 | |||
76 | General reply packet(s) are always used if not own reply defined. | ||
77 | |||
78 | ============================================================================ | ||
79 | | 00-63 | GENERAL REPLY PACKET #1 (PREVIOUS REPLY) | ||
80 | ============================================================================ | ||
81 | | 00 | reply data (if any) from previous transaction | ||
82 | | | Just same reply packet as returned during previous transaction. | ||
83 | | | Needed only if reply is missed in previous transaction. | ||
84 | | | Just skip normally. | ||
85 | ---------------------------------------------------------------------------- | ||
86 | | 01-59 | don't care | ||
87 | ---------------------------------------------------------------------------- | ||
88 | | 60 | packet sequence number | ||
89 | ---------------------------------------------------------------------------- | ||
90 | | 61-63 | don't care | ||
91 | ---------------------------------------------------------------------------- | ||
92 | |||
93 | ============================================================================ | ||
94 | | 00-63 | GENERAL REPLY PACKET #2 (CURRENT REPLY) | ||
95 | ============================================================================ | ||
96 | | 00 | reply data (if any) | ||
97 | ---------------------------------------------------------------------------- | ||
98 | | 01-59 | don't care | ||
99 | ---------------------------------------------------------------------------- | ||
100 | | 60 | packet sequence number | ||
101 | ---------------------------------------------------------------------------- | ||
102 | | 61-63 | don't care | ||
103 | ---------------------------------------------------------------------------- | ||
104 | |||
105 | ============================================================================ | ||
106 | | 00-63 | I2C WRITE REQUEST PACKET | ||
107 | ============================================================================ | ||
108 | | 00 | 0x31 I2C write command | ||
109 | ---------------------------------------------------------------------------- | ||
110 | | 01 | i2c address | ||
111 | ---------------------------------------------------------------------------- | ||
112 | | 02 | data length | ||
113 | | | 0x02 (for typical I2C reg / val pair) | ||
114 | ---------------------------------------------------------------------------- | ||
115 | | 03 | 0x01 | ||
116 | ---------------------------------------------------------------------------- | ||
117 | | 04- | data | ||
118 | ---------------------------------------------------------------------------- | ||
119 | | -59 | don't care | ||
120 | ---------------------------------------------------------------------------- | ||
121 | | 60 | packet sequence number | ||
122 | ---------------------------------------------------------------------------- | ||
123 | | 61-63 | don't care | ||
124 | ---------------------------------------------------------------------------- | ||
125 | |||
126 | ============================================================================ | ||
127 | | 00-63 | I2C READ REQUEST PACKET | ||
128 | ============================================================================ | ||
129 | | 00 | 0x33 I2C read command | ||
130 | ---------------------------------------------------------------------------- | ||
131 | | 01 | i2c address + 1 | ||
132 | ---------------------------------------------------------------------------- | ||
133 | | 02 | register | ||
134 | ---------------------------------------------------------------------------- | ||
135 | | 03 | 0x00 | ||
136 | ---------------------------------------------------------------------------- | ||
137 | | 04 | 0x00 | ||
138 | ---------------------------------------------------------------------------- | ||
139 | | 05 | 0x01 | ||
140 | ---------------------------------------------------------------------------- | ||
141 | | 06-59 | don't care | ||
142 | ---------------------------------------------------------------------------- | ||
143 | | 60 | packet sequence number | ||
144 | ---------------------------------------------------------------------------- | ||
145 | | 61-63 | don't care | ||
146 | ---------------------------------------------------------------------------- | ||
147 | |||
148 | ============================================================================ | ||
149 | | 00-63 | USB CONTROLLER REGISTER WRITE REQUEST PACKET | ||
150 | ============================================================================ | ||
151 | | 00 | 0xb1 register write command | ||
152 | ---------------------------------------------------------------------------- | ||
153 | | 01-02 | register | ||
154 | ---------------------------------------------------------------------------- | ||
155 | | 03 | 0x01 | ||
156 | ---------------------------------------------------------------------------- | ||
157 | | 04 | value | ||
158 | ---------------------------------------------------------------------------- | ||
159 | | 05-59 | don't care | ||
160 | ---------------------------------------------------------------------------- | ||
161 | | 60 | packet sequence number | ||
162 | ---------------------------------------------------------------------------- | ||
163 | | 61-63 | don't care | ||
164 | ---------------------------------------------------------------------------- | ||
165 | |||
166 | ============================================================================ | ||
167 | | 00-63 | USB CONTROLLER REGISTER READ REQUEST PACKET | ||
168 | ============================================================================ | ||
169 | | 00 | 0xb0 register read command | ||
170 | ---------------------------------------------------------------------------- | ||
171 | | 01-02 | register | ||
172 | ---------------------------------------------------------------------------- | ||
173 | | 03 | 0x01 | ||
174 | ---------------------------------------------------------------------------- | ||
175 | | 04-59 | don't care | ||
176 | ---------------------------------------------------------------------------- | ||
177 | | 60 | packet sequence number | ||
178 | ---------------------------------------------------------------------------- | ||
179 | | 61-63 | don't care | ||
180 | ---------------------------------------------------------------------------- | ||
181 | |||
182 | ============================================================================ | ||
183 | | 00-63 | LED CONTROL REQUEST PACKET | ||
184 | ============================================================================ | ||
185 | | 00 | 0x16 LED and IR control command | ||
186 | ---------------------------------------------------------------------------- | ||
187 | | 01 | 0x01 (LED) | ||
188 | ---------------------------------------------------------------------------- | ||
189 | | 03 | 0x00 blink | ||
190 | | | 0x01 lights continuously | ||
191 | ---------------------------------------------------------------------------- | ||
192 | | 04 | blink interval | ||
193 | | | 0x00 fastest (looks like LED lights continuously) | ||
194 | | | 0xff slowest | ||
195 | ---------------------------------------------------------------------------- | ||
196 | | 05-59 | don't care | ||
197 | ---------------------------------------------------------------------------- | ||
198 | | 60 | packet sequence number | ||
199 | ---------------------------------------------------------------------------- | ||
200 | | 61-63 | don't care | ||
201 | ---------------------------------------------------------------------------- | ||
202 | |||
203 | ============================================================================ | ||
204 | | 00-63 | IR CONTROL REQUEST PACKET | ||
205 | ============================================================================ | ||
206 | | 00 | 0x16 LED and IR control command | ||
207 | ---------------------------------------------------------------------------- | ||
208 | | 01 | 0x02 (IR) | ||
209 | ---------------------------------------------------------------------------- | ||
210 | | 03 | 0x00 IR disabled | ||
211 | | | 0x01 IR enabled | ||
212 | ---------------------------------------------------------------------------- | ||
213 | | 04-59 | don't care | ||
214 | ---------------------------------------------------------------------------- | ||
215 | | 60 | packet sequence number | ||
216 | ---------------------------------------------------------------------------- | ||
217 | | 61-63 | don't care | ||
218 | ---------------------------------------------------------------------------- | ||
219 | |||
220 | ============================================================================ | ||
221 | | 00-63 | STREAMING CONTROL REQUEST PACKET | ||
222 | ============================================================================ | ||
223 | | 00 | 0x12 streaming control command | ||
224 | ---------------------------------------------------------------------------- | ||
225 | | 01 | 0x00 streaming disabled | ||
226 | | | 0x01 streaming enabled | ||
227 | ---------------------------------------------------------------------------- | ||
228 | | 02 | 0x00 | ||
229 | ---------------------------------------------------------------------------- | ||
230 | | 03-59 | don't care | ||
231 | ---------------------------------------------------------------------------- | ||
232 | | 60 | packet sequence number | ||
233 | ---------------------------------------------------------------------------- | ||
234 | | 61-63 | don't care | ||
235 | ---------------------------------------------------------------------------- | ||
236 | |||
237 | ============================================================================ | ||
238 | | 00-63 | REMOTE CONTROL REQUEST PACKET | ||
239 | ============================================================================ | ||
240 | | 00 | 0x41 remote control command | ||
241 | ---------------------------------------------------------------------------- | ||
242 | | 01-59 | don't care | ||
243 | ---------------------------------------------------------------------------- | ||
244 | | 60 | packet sequence number | ||
245 | ---------------------------------------------------------------------------- | ||
246 | | 61-63 | don't care | ||
247 | ---------------------------------------------------------------------------- | ||
248 | |||
249 | ============================================================================ | ||
250 | | 00-63 | REMOTE CONTROL REPLY PACKET | ||
251 | ============================================================================ | ||
252 | | 00 | 0x00 code not received | ||
253 | | | 0x01 code received | ||
254 | ---------------------------------------------------------------------------- | ||
255 | | 01 | remote control code | ||
256 | ---------------------------------------------------------------------------- | ||
257 | | 02-59 | don't care | ||
258 | ---------------------------------------------------------------------------- | ||
259 | | 60 | packet sequence number | ||
260 | ---------------------------------------------------------------------------- | ||
261 | | 61-63 | don't care | ||
262 | ---------------------------------------------------------------------------- | ||
263 | |||
264 | ============================================================================ | ||
265 | | 00-63 | GET HARDWARE INFO REQUEST PACKET | ||
266 | ============================================================================ | ||
267 | | 00 | 0x19 get hardware info command | ||
268 | ---------------------------------------------------------------------------- | ||
269 | | 01-59 | don't care | ||
270 | ---------------------------------------------------------------------------- | ||
271 | | 60 | packet sequence number | ||
272 | ---------------------------------------------------------------------------- | ||
273 | | 61-63 | don't care | ||
274 | ---------------------------------------------------------------------------- | ||
275 | |||
276 | ============================================================================ | ||
277 | | 00-63 | GET HARDWARE INFO REPLY PACKET | ||
278 | ============================================================================ | ||
279 | | 00 | hardware id | ||
280 | ---------------------------------------------------------------------------- | ||
281 | | 01-02 | firmware version | ||
282 | ---------------------------------------------------------------------------- | ||
283 | | 03-59 | don't care | ||
284 | ---------------------------------------------------------------------------- | ||
285 | | 60 | packet sequence number | ||
286 | ---------------------------------------------------------------------------- | ||
287 | | 61-63 | don't care | ||
288 | ---------------------------------------------------------------------------- | ||
289 | |||
290 | ============================================================================ | ||
291 | | 00-63 | SMART CARD READER PACKET | ||
292 | ============================================================================ | ||
293 | | 00 | 0x34 smart card reader command | ||
294 | ---------------------------------------------------------------------------- | ||
295 | | xx | | ||
296 | ---------------------------------------------------------------------------- | ||
297 | | xx-59 | don't care | ||
298 | ---------------------------------------------------------------------------- | ||
299 | | 60 | packet sequence number | ||
300 | ---------------------------------------------------------------------------- | ||
301 | | 61-63 | don't care | ||
302 | ---------------------------------------------------------------------------- | ||
303 | |||
304 | */ | ||