| Antti Palosaari | 2bf290b | 2009-11-13 22:38:55 -0300 | [diff] [blame] | 1 | /* | 
|  | 2 | * E3C EC168 DVB USB driver | 
|  | 3 | * | 
|  | 4 | * Copyright (C) 2009 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 | */ | 
|  | 21 |  | 
|  | 22 | #ifndef EC168_H | 
|  | 23 | #define EC168_H | 
|  | 24 |  | 
|  | 25 | #define DVB_USB_LOG_PREFIX "ec168" | 
|  | 26 | #include "dvb-usb.h" | 
|  | 27 |  | 
|  | 28 | #define deb_info(args...) dprintk(dvb_usb_ec168_debug, 0x01, args) | 
|  | 29 | #define deb_rc(args...)   dprintk(dvb_usb_ec168_debug, 0x02, args) | 
|  | 30 | #define deb_xfer(args...) dprintk(dvb_usb_ec168_debug, 0x04, args) | 
|  | 31 | #define deb_reg(args...)  dprintk(dvb_usb_ec168_debug, 0x08, args) | 
|  | 32 | #define deb_i2c(args...)  dprintk(dvb_usb_ec168_debug, 0x10, args) | 
|  | 33 | #define deb_fw(args...)   dprintk(dvb_usb_ec168_debug, 0x20, args) | 
|  | 34 |  | 
|  | 35 | #define ec168_debug_dump(r, t, v, i, b, l, func) { \ | 
|  | 36 | int loop_; \ | 
|  | 37 | func("%02x %02x %02x %02x %02x %02x %02x %02x", \ | 
|  | 38 | t, r, v & 0xff, v >> 8, i & 0xff, i >> 8, l & 0xff, l >> 8); \ | 
|  | 39 | if (t == (USB_TYPE_VENDOR | USB_DIR_OUT)) \ | 
|  | 40 | func(" >>> "); \ | 
|  | 41 | else \ | 
|  | 42 | func(" <<< "); \ | 
|  | 43 | for (loop_ = 0; loop_ < l; loop_++) \ | 
|  | 44 | func("%02x ", b[loop_]); \ | 
|  | 45 | func("\n");\ | 
|  | 46 | } | 
|  | 47 |  | 
|  | 48 | #define EC168_USB_TIMEOUT 1000 | 
|  | 49 |  | 
|  | 50 | struct ec168_req { | 
|  | 51 | u8  cmd;       /* [1] */ | 
|  | 52 | u16 value;     /* [2|3] */ | 
|  | 53 | u16 index;     /* [4|5] */ | 
|  | 54 | u16 size;      /* [6|7] */ | 
|  | 55 | u8  *data; | 
|  | 56 | }; | 
|  | 57 |  | 
|  | 58 | enum ec168_cmd { | 
|  | 59 | DOWNLOAD_FIRMWARE    = 0x00, | 
|  | 60 | CONFIG               = 0x01, | 
|  | 61 | DEMOD_RW             = 0x03, | 
|  | 62 | GPIO                 = 0x04, | 
|  | 63 | STREAMING_CTRL       = 0x10, | 
|  | 64 | READ_I2C             = 0x20, | 
|  | 65 | WRITE_I2C            = 0x21, | 
|  | 66 | HID_DOWNLOAD         = 0x30, | 
|  | 67 | GET_CONFIG, | 
|  | 68 | SET_CONFIG, | 
|  | 69 | READ_DEMOD, | 
|  | 70 | WRITE_DEMOD, | 
|  | 71 | }; | 
|  | 72 |  | 
|  | 73 | #endif |