Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
af9035.h
Go to the documentation of this file.
1 /*
2  * Afatech AF9035 DVB USB driver
3  *
4  * Copyright (C) 2009 Antti Palosaari <[email protected]>
5  * Copyright (C) 2012 Antti Palosaari <[email protected]>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with this program; if not, write to the Free Software Foundation, Inc.,
19  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20  */
21 
22 #ifndef AF9035_H
23 #define AF9035_H
24 
25 #include "dvb_usb.h"
26 #include "af9033.h"
27 #include "tua9001.h"
28 #include "fc0011.h"
29 #include "mxl5007t.h"
30 #include "tda18218.h"
31 #include "fc2580.h"
32 
33 struct reg_val {
34  u32 reg;
35  u8 val;
36 };
37 
38 struct reg_val_mask {
39  u32 reg;
40  u8 val;
41  u8 mask;
42 };
43 
44 struct usb_req {
48  u8 *wbuf;
50  u8 *rbuf;
51 };
52 
53 struct state {
54  u8 seq; /* packet sequence number */
55  bool dual_mode;
56 
58 };
59 
61  20480000, /* FPGA */
62  16384000, /* 16.38 MHz */
63  20480000, /* 20.48 MHz */
64  36000000, /* 36.00 MHz */
65  30000000, /* 30.00 MHz */
66  26000000, /* 26.00 MHz */
67  28000000, /* 28.00 MHz */
68  32000000, /* 32.00 MHz */
69  34000000, /* 34.00 MHz */
70  24000000, /* 24.00 MHz */
71  22000000, /* 22.00 MHz */
72  12000000, /* 12.00 MHz */
73 };
74 
76  12000000, /* 12.00 MHz */
77  20480000, /* 20.48 MHz */
78  36000000, /* 36.00 MHz */
79  30000000, /* 30.00 MHz */
80  26000000, /* 26.00 MHz */
81  28000000, /* 28.00 MHz */
82  32000000, /* 32.00 MHz */
83  34000000, /* 34.00 MHz */
84  24000000, /* 24.00 MHz */
85  22000000, /* 22.00 MHz */
86 };
87 
88 #define AF9035_FIRMWARE_AF9035 "dvb-usb-af9035-02.fw"
89 #define AF9035_FIRMWARE_IT9135 "dvb-usb-it9135-01.fw"
90 
91 /* EEPROM locations */
92 #define EEPROM_IR_MODE 0x430d
93 #define EEPROM_DUAL_MODE 0x4326
94 #define EEPROM_IR_TYPE 0x4329
95 #define EEPROM_1_IFFREQ_L 0x432d
96 #define EEPROM_1_IFFREQ_H 0x432e
97 #define EEPROM_1_TUNER_ID 0x4331
98 #define EEPROM_2_IFFREQ_L 0x433d
99 #define EEPROM_2_IFFREQ_H 0x433e
100 #define EEPROM_2_TUNER_ID 0x4341
101 
102 /* USB commands */
103 #define CMD_MEM_RD 0x00
104 #define CMD_MEM_WR 0x01
105 #define CMD_I2C_RD 0x02
106 #define CMD_I2C_WR 0x03
107 #define CMD_IR_GET 0x18
108 #define CMD_FW_DL 0x21
109 #define CMD_FW_QUERYINFO 0x22
110 #define CMD_FW_BOOT 0x23
111 #define CMD_FW_DL_BEGIN 0x24
112 #define CMD_FW_DL_END 0x25
113 #define CMD_FW_SCATTER_WR 0x29
114 
115 #endif