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 50struct 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 58enum 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 74