Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * TerraTec Cinergy T2/qanu USB2 DVB-T adapter.
0004  *
0005  * Copyright (C) 2007 Tomi Orava (tomimo@ncircle.nullnet.fi)
0006  *
0007  * Based on the dvb-usb-framework code and the
0008  * original Terratec Cinergy T2 driver by:
0009  *
0010  * Copyright (C) 2004 Daniel Mack <daniel@qanu.de> and
0011  *                  Holger Waechtler <holger@qanu.de>
0012  *
0013  *  Protocol Spec published on http://qanu.de/specs/terratec_cinergyT2.pdf
0014  */
0015 
0016 #ifndef _DVB_USB_CINERGYT2_H_
0017 #define _DVB_USB_CINERGYT2_H_
0018 
0019 #include <linux/usb/input.h>
0020 
0021 #define DVB_USB_LOG_PREFIX "cinergyT2"
0022 #include "dvb-usb.h"
0023 
0024 #define DRIVER_NAME "TerraTec/qanu USB2.0 Highspeed DVB-T Receiver"
0025 
0026 extern int dvb_usb_cinergyt2_debug;
0027 
0028 #define deb_info(args...)  dprintk(dvb_usb_cinergyt2_debug,  0x001, args)
0029 #define deb_xfer(args...)  dprintk(dvb_usb_cinergyt2_debug,  0x002, args)
0030 #define deb_pll(args...)   dprintk(dvb_usb_cinergyt2_debug,  0x004, args)
0031 #define deb_ts(args...)    dprintk(dvb_usb_cinergyt2_debug,  0x008, args)
0032 #define deb_err(args...)   dprintk(dvb_usb_cinergyt2_debug,  0x010, args)
0033 #define deb_rc(args...)    dprintk(dvb_usb_cinergyt2_debug,  0x020, args)
0034 #define deb_fw(args...)    dprintk(dvb_usb_cinergyt2_debug,  0x040, args)
0035 #define deb_mem(args...)   dprintk(dvb_usb_cinergyt2_debug,  0x080, args)
0036 #define deb_uxfer(args...) dprintk(dvb_usb_cinergyt2_debug,  0x100, args)
0037 
0038 
0039 
0040 enum cinergyt2_ep1_cmd {
0041     CINERGYT2_EP1_PID_TABLE_RESET       = 0x01,
0042     CINERGYT2_EP1_PID_SETUP         = 0x02,
0043     CINERGYT2_EP1_CONTROL_STREAM_TRANSFER   = 0x03,
0044     CINERGYT2_EP1_SET_TUNER_PARAMETERS  = 0x04,
0045     CINERGYT2_EP1_GET_TUNER_STATUS      = 0x05,
0046     CINERGYT2_EP1_START_SCAN        = 0x06,
0047     CINERGYT2_EP1_CONTINUE_SCAN     = 0x07,
0048     CINERGYT2_EP1_GET_RC_EVENTS     = 0x08,
0049     CINERGYT2_EP1_SLEEP_MODE        = 0x09,
0050     CINERGYT2_EP1_GET_FIRMWARE_VERSION  = 0x0A
0051 };
0052 
0053 
0054 struct dvbt_get_status_msg {
0055     uint32_t freq;
0056     uint8_t bandwidth;
0057     uint16_t tps;
0058     uint8_t flags;
0059     __le16 gain;
0060     uint8_t snr;
0061     __le32 viterbi_error_rate;
0062     uint32_t rs_error_rate;
0063     __le32 uncorrected_block_count;
0064     uint8_t lock_bits;
0065     uint8_t prev_lock_bits;
0066 } __attribute__((packed));
0067 
0068 
0069 struct dvbt_set_parameters_msg {
0070     uint8_t cmd;
0071     __le32 freq;
0072     uint8_t bandwidth;
0073     __le16 tps;
0074     uint8_t flags;
0075 } __attribute__((packed));
0076 
0077 
0078 extern struct dvb_frontend *cinergyt2_fe_attach(struct dvb_usb_device *d);
0079 
0080 #endif /* _DVB_USB_CINERGYT2_H_ */
0081